Excel VBA Fehler '1004' "Anwendungs- oder objektdefinirter Fehler" Was tun?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Den prinzipiellen Fehler hat Dir ja lamiam schon gezeigt.
Davon ab kann man das Ganze aber auch noch etwas kompakter schreiben.
Vor allem .Select ist in VBA so gut wie immer überflüssig.
So sollte es auch klappen, oder?:

Private Sub CommandButton1_Click()
    If Cells(9, 4) = "Düsseldorf (3885)" Then
      Sheets("Diverses").Range("L2:L8").Copy _
      Sheets("IT Banf").Range("A35")
      Sheets("Diverses").Range("L9:L13").Copy _
      Sheets("IT Banf").Range("C35")
    End If
End Sub
Woher ich das weiß:Beruf – IT-Administrator (i.R.)

ah, das destination:= kann man sich (inzwischen?) sparen?

0
@Iamiam

Ja, kann man, da reicht ein Space dazwischen.

0

Danke fürs ☆

0

Range(L2, L8) muss heissen Range("L2:L8")
(anders als bei Cells(.., ..))
Ausserdem reicht Sheets("Diverses").activate
(spielt nur eine Rolle, wenn da drin schon eine Auswahl markiert ist, die benutzt werden soll, dann kann man nämlich mit selection... weitermachen.

versuch mal das wesentlicj kürzer so durchzuführen (keine Garantie, wills jetzt auch nicht selbst ausprobieren):

Private Sub CommandButton1_Click()

If Cells(9, 4) = "Düsseldorf (3885)" Then

Sheets("Diverses").Range("L2:L8").Copy destination:=Sheets("IT Banf").Range("A35") ' das Leerzeichen zwischen "IT und Banf" könnte von diesem Editor verschluckt werden!

Sheets("Diverses").Range("L9:L13").Copy destination:=Sheets("IT Banf").Range("C35:A39")

End If

End Sub

Allerdings habe ich den Eindruck, dass bei der letzten Adresse ein Fehler drin ist, erstens würdest Du was vorher eingefügtes überschreiben, zweitens können nur gleiche Formen eingefügt werden.
Vllt übst Du ja nur, aber einen Button für einen einzigen Fall zu machen, ist mit Kanonen auf Spatzen geschossen. Setzt Du den cursor gleich auf Düsseldorf, kannst du Dir die ganze if..then..end if -Prozedur sparen.
Zum Üben und für schrittweisen Aufbau d'accord! Kennst Du den Befehl: Selection.offset(Zeilen, Spalten)

1

Versuch mal "L2" statt L2 usw...

Was möchtest Du wissen?