Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Fehler bei ausführung | Herbers Excel-Forum


Betrifft: Fehler bei ausführung von: Steve
Geschrieben am: 18.02.2012 12:28:03

Hallo zusammen,

Habe ein kleines problem, diese formel habe ich angepasst und funktionierte auch aber jetzt gibt er mir Fehler 1004 aus. Was mache ich falsch?

With Range("A8").End(xlDown).Offset(1, 0)
    .Value = CDate(TextBoxDataVP.Text)
    .Offset(0, 1) = CStr(TextBoxDescrizioneVP.Text)
    .Offset(0, 2) = CStr(TextBoxScorVP.Text)
End With
Es sollte 3 textbox inhalte in die ersten leeren zellen schreiben ab "A8".

Besten Dank

Steve

  

Betrifft: AW: Fehler bei ausführung von: ransi
Geschrieben am: 18.02.2012 12:38:55

HAllo

Ich denke nach A8 kommen nur leere Zellen oder die letzte Zelle in A:A ist nicht leer.
Dann gibts den Fehler.

Check das mal:
MsgBox Range("A8").End(xlDown).Address

ransi


  

Betrifft: AW: Fehler bei ausführung von: Steve
Geschrieben am: 18.02.2012 12:53:28

Hallo Ransi,

Danke für die antwort.

Du hast recht, er geht bis zur letzten zelle in der excel tabelle.

Wie kann ich den abändern so das er schon in A8 etwas reinschreibt, wenn tabelle leer?

Besten Dank

Steve


  

Betrifft: AW: Fehler bei ausführung von: fcs
Geschrieben am: 18.02.2012 13:02:39

Hallo Steve,

wahrscheinlich stehen bei dir unterhalb von Zelle A8 momentan keine Daten.
Dadurch steuert "Range("A8").End(xlDown)" die letzte Zeile der Tabelle an. Der Versuch mit Offset(1,0) die Zelle unterhalb der Zelle als Eingabezelle zu setzen führt dann zum Fehler.

Du muß eine Prüfung auf die Zeilennummer einbauen und danach die Einfügezelle setzen.

ggf. ist auch einfacher/sinnvoll die nächste frei Zeile mit End(xlUp) von der letzten Zeile der Tabelle aus anzusteuern.

Gruß
Franz

  Dim Zelle As Range
  
  With ActiveSheet
      Set Zelle = .Range("A8").End(xlDown)
      If Zelle.Row = .Rows.Count Then
        Set Zelle = .Range("A9")
      Else
        Set Zelle = Zelle.Offset(1, 0)
      End If
      With Zelle
          .Value = CDate(TextBoxDataVP.Text)
          .Offset(0, 1) = CStr(TextBoxDescrizioneVP.Text)
          .Offset(0, 2) = CStr(TextBoxScorVP.Text)
      End With
    End With
  End With
  
'oder

  With ActiveSheet
    Set Zelle = .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
      If Zelle.Row <= 8 Then
        Set Zelle = .Range("A9")
      End If
      With Zelle
        .Value = CDate(TextBoxDataVP.Text)
        .Offset(0, 1) = CStr(TextBoxDescrizioneVP.Text)
        .Offset(0, 2) = CStr(TextBoxScorVP.Text)
      End With
    End With
  End With



Beiträge aus den Excel-Beispielen zum Thema "Fehler bei ausführung"