Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: nächste spalte füllen

nächste spalte füllen
25.03.2020 12:37:49
opalu
Hallo Profis,
ich steh mal wieder auf dem Schlauch.
Aus einer userform trag ich werte mit cells(….) in die erste Spalte ein.
Wie kann ich den nächsten Datensatz in die 2. Spalte eintragen usw.
mit Zeilen kann ich die Sätze weiterschreiben und wieder lesen.
für Spalte reichen die Gehirnwindungen nicht aus.
mfg Opalu
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ganzer Code zeigen, oder Beispielmappe! (owT)
25.03.2020 13:54:06
EtoPHG

AW: Ganzer Code zeigen, oder Beispielmappe! (owT)
25.03.2020 14:21:13
opalu
Hallo EtoPHG
bei dem Code werden die Daten zehnmal wiederholt.
Ich möchte aber nur eine Spalte mit den Werten füllen, und in der nächsten
Spalte andere Werte abbilden usw.
D.h. bei jedem Click sollen in der nächsten Spalte neu Werte übertragen werden
Private Sub CommandButton2_Click()
Dim spalte As Long
Dim i As Long
spalte = 1
For i = 1 To 10
Cells(1, spalte) = ComboBox1.Value * ComboBox2.Value
Cells(2, spalte) = ComboBox3.Value * ComboBox4.Value
Cells(3, spalte) = ComboBox5.Value * ComboBox6.Value
Cells(4, spalte) = ComboBox7.Value * ComboBox8.Value
Cells(5, spalte) = ComboBox9.Value * ComboBox10.Value
Cells(6, spalte) = ComboBox11.Value * ComboBox12.Value
Cells(7, spalte) = ComboBox13.Value * ComboBox14.Value
Cells(8, spalte) = ComboBox15.Value * ComboBox16.Value
Cells(9, spalte) = ComboBox17.Value * ComboBox18.Value
spalte = spalte + 1
Next i
End Sub
Wie könnt ich das lösen ?
Anzeige
AW: Ganzer Code zeigen, oder Beispielmappe! (owT)
26.03.2020 08:06:59
EtoPHG
Hallo,
Probier mal:
Private Sub CommandButton2_Click()
Dim lastCol As Long
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
lastCol = lastCol + 1
If lastCol = 2 And IsEmpty(Cells(1, 1)) Then lastCol = 1
If vbYes = MsgBox("Die letzte gefüllte Spalte ist " & (lastCol - 1) & vbCrLf & _
"Wollen Sie die Spalte " & lastCol & " jetzt erstellen?", _
vbYesNo + vbExclamation, "Wert in lastcol kopieren") Then
Cells(1, lastCol) = ComboBox1.Value * ComboBox2.Value
Cells(2, lastCol) = ComboBox3.Value * ComboBox4.Value
Cells(3, lastCol) = ComboBox5.Value * ComboBox6.Value
Cells(4, lastCol) = ComboBox7.Value * ComboBox8.Value
Cells(5, lastCol) = ComboBox9.Value * ComboBox10.Value
Cells(6, lastCol) = ComboBox11.Value * ComboBox12.Value
Cells(7, lastCol) = ComboBox13.Value * ComboBox14.Value
Cells(8, lastCol) = ComboBox15.Value * ComboBox16.Value
Cells(9, lastCol) = ComboBox17.Value * ComboBox18.Value
End If
End Sub
Gruess Hansueli
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Nächste Spalte in Excel füllen


Schritt-für-Schritt-Anleitung

Um die nächste Spalte in Excel mit Werten aus einer UserForm zu füllen, kannst Du den folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass die Werte aus verschiedenen ComboBoxen in der nächsten freien Spalte eingefügt werden.

  1. Öffne den VBA-Editor (ALT + F11).
  2. Füge einen CommandButton auf Deiner UserForm hinzu.
  3. Kopiere und füge den folgenden Code in das Click-Ereignis des CommandButtons ein:
Private Sub CommandButton2_Click()
    Dim lastCol As Long
    lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
    lastCol = lastCol + 1

    If lastCol = 2 And IsEmpty(Cells(1, 1)) Then lastCol = 1

    If vbYes = MsgBox("Die letzte gefüllte Spalte ist " & (lastCol - 1) & vbCrLf & _
                      "Wollen Sie die Spalte " & lastCol & " jetzt erstellen?", _
                      vbYesNo + vbExclamation, "Wert in lastcol kopieren") Then
        Cells(1, lastCol) = ComboBox1.Value * ComboBox2.Value
        Cells(2, lastCol) = ComboBox3.Value * ComboBox4.Value
        Cells(3, lastCol) = ComboBox5.Value * ComboBox6.Value
        Cells(4, lastCol) = ComboBox7.Value * ComboBox8.Value
        Cells(5, lastCol) = ComboBox9.Value * ComboBox10.Value
        Cells(6, lastCol) = ComboBox11.Value * ComboBox12.Value
        Cells(7, lastCol) = ComboBox13.Value * ComboBox14.Value
        Cells(8, lastCol) = ComboBox15.Value * ComboBox16.Value
        Cells(9, lastCol) = ComboBox17.Value * ComboBox18.Value
    End If
End Sub
  1. Schließe den VBA-Editor und teste die UserForm.

Häufige Fehler und Lösungen

  • Daten werden wiederholt: Wenn die Werte in der Spalte zehnmal wiederholt werden, überprüfe, ob die Schleife (For i = 1 To 10) korrekt implementiert ist. Der Code sollte so angepasst werden, dass er die Spalte nicht in einer Schleife füllt, sondern nur bei jedem Klick in die nächste Spalte.

  • Leere Zellen: Wenn die Zellen leer bleiben, stelle sicher, dass die ComboBoxen korrekt ausgefüllt sind und dass die Werte tatsächlich in den Zellen geschrieben werden.


Alternative Methoden

Eine alternative Methode, um die nächste Spalte zu füllen, besteht darin, Excel-Formeln zu verwenden, anstatt VBA. Du kannst die Werte in einer Zelle berechnen und dann die Formel nach rechts ziehen, um die nächsten Werte zu generieren.

Excel-Formel Beispiel:

=A1 * B1

Diese Formel kannst Du einfach nach rechts ziehen, um sie in die nächsten Spalten zu übertragen.


Praktische Beispiele

Angenommen, Du hast folgende Werte in den ComboBoxen:

  • ComboBox1: 5
  • ComboBox2: 2
  • ComboBox3: 3
  • ComboBox4: 4

Mit dem obigen Code wird in der ersten freien Spalte das Produkt von ComboBox1 und ComboBox2 in die erste Zeile geschrieben. In der zweiten Zeile wird das Produkt von ComboBox3 und ComboBox4 geschrieben und so weiter.


Tipps für Profis

  • Überlege, ob Du die MsgBox verwenden möchtest, um den Benutzer um Bestätigung zu bitten. Dies kann hilfreich sein, wenn Du Daten versehentlich überschreiben könntest.
  • Verwende Option Explicit zu Beginn Deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler bei der Variablenverwendung zu vermeiden.

FAQ: Häufige Fragen

1. Wie finde ich die letzte gefüllte Spalte?
Du kannst die letzte gefüllte Spalte mit Cells(1, Columns.Count).End(xlToLeft).Column ermitteln. Dies gibt Dir die Spaltennummer der letzten nicht leeren Zelle in der ersten Zeile zurück.

2. Was mache ich, wenn die Werte nicht in die richtige Spalte geschrieben werden?
Überprüfe den Code auf Fehler in der Spaltenzuweisung. Stelle sicher, dass die Variable lastCol korrekt aktualisiert wird, bevor die Werte in die Zellen geschrieben werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige