Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Leere Zelle auswählen | Herbers Excel-Forum


Betrifft: Leere Zelle auswählen von: Volker
Geschrieben am: 18.12.2009 10:36:41

Guten Morgen zusammen,

ich versuche in eine Tabelle mittels Userform-Combobox Daten zu übergeben.
Ich möchte die Daten nebeneinander aufgelistet haben. Das versuche ich mittels unten stehendem Code.

Anscheinend habe ich irgendwo einen (Denk)-Fehler, denn es funktieniert nur bis zur zweiten Zelle
Also:Wenn in B4 ein Wert steht, schickt die Userform die Daten nach C4 soweit korrekt.
Aber wenn in C4 ein Wert steht, wird C4 überschrieben.

Nun zwei Fragen: Wo liegt der Fehler? Kann man diese Problematik auch eleganter Lösen?

Private Sub CommandButton2_Click()

If ActiveCell.Offset(0, 1) <> "" Then
ActiveCell.Offset(0, 2) = ComboBox1
Else: ActiveCell.Offset(0, 1) = ComboBox1


If ActiveCell.Offset(0, 1) And ActiveCell.Offset(0, 2) <> "" Then
ActiveCell.Offset(0, 3) = ComboBox1
Else: ActiveCell.Offset(0, 2) = ComboBox1


If ActiveCell.Offset(0, 1) And ActiveCell.Offset(0, 2) And ActiveCell.Offset(0, 3) <> "" Then
ActiveCell.Offset(0, 4) = ComboBox1
Else: ActiveCell.Offset(0, 3) = ComboBox1
End If
End If
End If

End Sub
Danke für Eure Mühe

Gruß
Volker

  

Betrifft: erstes If greift (fast) immer... von: Björn B.
Geschrieben am: 18.12.2009 10:44:03

Hallo Volker,

bei sowas hilft es, den Code in Einzelschritten durchlaufen zu lassen.
Deine erste IF-Bedingung ist auch TRUE, wenn in der 2. Zelle schon was steht.

Gruß
Björn B


  

Betrifft: AW: erstes If greift (fast) immer... von: Volker
Geschrieben am: 18.12.2009 10:48:52

Hallo Björn B.
als erstes Danke für Deine Antwort. Das leuchtet ein. aber wie kann ich das verhindern? bzw. wie muß ich den Code ändern? Würdest Du mir bitte einen Ansatz geben?

Danke und Gruß
Volker


  

Betrifft: versuch das... von: Björn B.
Geschrieben am: 18.12.2009 10:51:25

Hallo,

Dim i As Integer

Do
 If ActiveCell.Offset(0, i) = "" Then
   ActiveCell.Offset(0, i) = ComboBox1
   Exit Sub
 Else
   i = i + 1
 End If
Loop While ActiveCell.Offset(0, i - 1) <> ""
Gruß
Björn B.


  

Betrifft: AW: versuch das... von: Volker
Geschrieben am: 18.12.2009 10:53:54

Hallo Björn B.
Danke das funktioniert!
Gruß
Volker


Beiträge aus den Excel-Beispielen zum Thema "Leere Zelle auswählen"