6.9k Aufrufe
Gefragt in Tabellenkalkulation von b25812 Mitglied (515 Punkte)
Ich habe folgendes problem, ich möchte einen teil aus einer tabelle in eine andere kopieren und dann erscheint folgende fehlermeldung.
Laufzeitfehler '1004'
die select-methode des range-objektes konnte nicht ausgeführt werden


Die formel sieht so aus :
Private Sub CommandButton3_Click()
Range("B5:Y7").Select
Selection.Copy
ActiveSheet.Next.Select
Range("B5").Select
ActiveSheet.Paste
End Sub

was stimmt dort nicht ???
gleich vorab ich kann nur ActiveSheet.Next. machen, da die tabellen blätter wechseln

danke für eine schnelle antwort

27 Antworten

0 Punkte
Beantwortet von theblackbird_ Mitglied (605 Punkte)
Moin,

Es wuerde sicher auch ohne die Selects gehen. Aber sei es drum, Du wolltest das ja nur ans Laufen bringen:

Versuch doch mal ob folgendes laeuft:
Private Sub CommandButton3_Click()
Range("B5:Y7").Select
Selection.Copy
If ActiveSheet.Index = Sheets.Count Then MsgBox "letztes Blatt aktiv": End
ActiveSheet.Next.Select
ActiveSheet.Range("B5").Select
ActiveSheet.Paste
End Sub


Cu TheBlackBird ®
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,
Private Sub CommandButton3_Click()
If ActiveSheet.Index = Sheets.Count Then
MsgBox "letztes Blatt aktiv"
Else
Range("B5:Y7").Copy ActiveSheet.Next.Range("B5")
End If
End Sub

Bis später,
Karin
0 Punkte
Beantwortet von b25812 Mitglied (515 Punkte)
Hat super geklappt. Ich danke euch !!!! :-)
Ich hätte da aber moch zwei fragen. Wie kann ich eine Zelle vor einer Eingabe schützen mit dem hinweis. " Keine Eingabe möglich " und warum funktioniert eine bedingte formatierung nicht wenn eine formel drin steht ??

Vielen dank im voraus :-)
0 Punkte
Beantwortet von b25812 Mitglied (515 Punkte)
Ich habe noch eine Frage, kann ich bei einem Drop down menue, die ich über die gültigkeit erstellt habe die schriftgröße ändern bzw das es größer angezeigt wird ????
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

zu Frage 1: z.B. mit folgendem Code im Codemodul des Tabellenblattes:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
MsgBox "Keine Eingabe erlaubt"
Target.Offset(1, 0).Select
End If
End Sub

zu Frage 2: die bedingte Formatierung funktioniert auch bei Zellen mit Formelergebnissen - da ist wohl deine Bedingung falsch, wenn sie nicht korrekt dargestellt wird

zu Frage 3: nein, das ist nicht möglich. Du kannst aber per VBA beim Selektieren der betreffenden Zelle den Zoom erhöhen und bei Verlassen (also Auswahl einer anderen Zelle) wieder zurücksetzen. Oder schau dir mal das Beispiel DropDown Zoom von meiner HP, Seite "Beispiele m. VBA" an.

Bis später,
Karin
0 Punkte
Beantwortet von b25812 Mitglied (515 Punkte)
Danke für die schnelle Antwort, kann ich denn auch die eingabe so schützen das der admin, die formel die dort drin steht bearbeiten kann, zb mit einem passwort ???
0 Punkte
Beantwortet von b25812 Mitglied (515 Punkte)
Kann ich auch verhindern das sich eine formel, in einer zelle ändert wenn ich sie mal geschrieben habe ???
Danke
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

wenn du einen Blattschutz setzt, hast du die Möglichkeit auszuwählen "Benutzer dürfen Bereiche bearbeiten" - damit kannst du festlegen, dass ein bestimmter Benutzer die Zelle bearbeiten darf.
Falls du stattdessen meinen geposteten Code verwendest, kannst du ihn dahingehend erweitern, dass bei dem erlaubten Benutzer die MsgBox nicht erscheint und der Cursor auch nicht versetzt wird, sodass ein Zugriff auf die Zelle möglich ist:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Environ("Username") <> "Beverly" Then
MsgBox "Keine Eingabe erlaubt"
Target.Offset(1, 0).Select
End If
End If
End Sub

Bedenke dabei stets, dass die Methode per Code nur funktioniert, wenn die Makros aktiviert worden sind.

Eine Formel ändert sich erst dann wenn du sie direkt in der Zelle veränderst - von alleine macht sie das nicht. Es ändert sich immer nur das Formelergebnis in Abhängigkeit von den Werten in den Bezugszellen.

Bis später,
Karin
0 Punkte
Beantwortet von b25812 Mitglied (515 Punkte)
Zum Formel Ergebnis.

Ich habe mehre tabellen 01+02+03.....31
dann habe ich eine auswertungstabelle, die zieht aus allen tabellen werte.
so, wenn ich was ändere in den 01+02.... ändere ich nur die 01 und kopiere dann wieder 02+03+04.....31.
das heißt aber ich muß dann in der auswertung alle bezüge neu einpflegen, weil ich zuvor die 02+03 gelöscht habe aber danach wieder erstellt habe.

gruß andi
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Andi,

nicht deine Formel selbst ändert sich, sondern die Bezüge in deiner Formel - das ist etwas anderes und einfach eine Tatsache, die von Excel so festgelegt ist: wenn du Tabellenblätter löschst, auf die sich die Formel bezieht, entsteht in der Formel dann folglich ein Bezugsfehler #BEZUG. Excel speichert bzw. "merkt" sich jedoch nicht, auf welches Tabellenblatt sich die Formel an dieser Stelle bezogen hat - folglich musst du die Formel von Hand wieder anpassen, auch wenn du ein Tabellenblatt mit dem selben Namen wieder hinzufügst.

Bis später,
Karin.
...