Hallo Wissende!
Ich habe ein Problem mit VBA in Excel.
Ich möchte Text in Zeilen schreiben mittels InputBox.
Dazu soll die erste unbenutzte Zeile gewählt werden und die Spalte soll sich bestimmen aus der Spaltenüberschrift. Mein Quellcode sieht so aus:
Public Sub Eingabe()
Dim Spalte As Integer
Dim Name As String
Dim Vorame As String
Dim Nummer As Integer
Dim Alter As Integer
Dim max_Z As Integer
Spalte = Worksheets(„Tabelle1“).UsedRange.Columns.Count
max_Z = Worksheets(„Tabelle1“).UsedRange.Rows.Count
Name = InputBox("Bitte Name eingeben! ", „Name?“, „Name_“ & max_Z)
Cells((max_Z + 1), (Spalte - 3)).Value = Name
Vorname = InputBox("Bitte Vorname eingeben! ", „Vorname?“, „Vorname_“ & max_Z)
Cells((max_Z + 1), (Spalte - 2)).Value = Vorname
Nummer = InputBox("Bitte Nummer eingeben! ", „Nummer?“, max_Z)
Cells(max_Z + 1, (Spalte - 1)).Value = Nummer
Alter = InputBox(„Bitte Alter eingeben!“, „Alter?“, max_Z)
Cells(max_Z + 1, (Spalte)).Value = Alter
Zeile bestimmen klappt gut, auch wenn sich die Anzahl ändert.
Aber wie bekomme ich die Krücke weg (spalte - 3)?
Ich weiß ja nicht, ob ich morgen noch 4 Spalten hab oder schon 5. Oder ob sich die Reihenfolge mal ändert?
Wie kann ich da eine Abfrage/Variable einbauen, so dass Excel alleine die passende Spalte findet?
Vielen Dank & freundliche Grüße
Feinkostmusik
Sorry - ich bin Piercer und verstehe nicht mal die Frage…
Keine Ahnung warum ich dafür Experte sein sollte…
Hallo Feinkostmusik,
Probier mal das hier!
Public Sub test()
Dim SZ As Integer
Dim max_Z As Integer
Dim spalte As Variant
max_Z = Worksheets(„Tabelle1“).UsedRange.Rows.Count
For SZ = 1 To Worksheets(„Tabelle1“).UsedRange.Columns.Count
spalte = Cells(1, SZ)
spalte = InputBox(spalte, spalte, spalte_ & max_Z)
Cells(max_Z + 1, (SZ)).Value = spalte
Next SZ
End Sub
Vielleicht hilft das ja?
Achtung
Ironiemodus an:
Das neue Wer-Weiss-Was ist ja klasse! Ich will was wissen zu Excel und die einzige Antwort kommt von einer Fachfremden, die völlig erstaunt ist ob der Anfrage (Übrigens Danke für die Antwort)
Das beste aber ist, dass ich mir selber antworten darf.
Bin begeistert, weiter so.
Ironiemodus aus:
Freundliche Grüße
Feinkostmusik
Hallo FKM,
Dazu soll die erste unbenutzte Zeile gewählt werden und die
Spalte soll sich bestimmen aus der Spaltenüberschrift. Mein
Public Sub Eingabe()
Dim Spalte As Integer
Dim Name As String
Dim Vorame As String
Dim Nummer As Integer
Dim Alter As Integer
Dim max_Z As Integer
Zeile bestimmen klappt gut, auch wenn sich die Anzahl ändert.
Glück gehabt. Benutze immer Option Explicit dann kommt dein Schreibfehler bei Vorame nicht mehr ungesehen durch:
Aber wie bekomme ich die Krücke weg (spalte - 3)?
Ich weiß ja nicht, ob ich morgen noch 4 Spalten hab oder schon
5. Oder ob sich die Reihenfolge mal ändert?
Gruß
Reinhard
Option Explicit
Public Sub Eingabe()
Dim Name As String
Dim Vorname As String
Dim Nummer As Integer
Dim Alter As Integer
Dim max\_Z As Long
max\_Z = Worksheets("Tabelle1").UsedRange.Rows.Count + 1
Name = InputBox("Bitte Name eingeben! ", "Name?", "Name\_" & max\_Z)
Cells((max\_Z), Spalte("Name")).Value = Name
Vorname = InputBox("Bitte Vorname eingeben! ", "Vorname?", "Vorname\_" & max\_Z)
Cells((max\_Z), Spalte("Vorname")).Value = Vorname
Nummer = InputBox("Bitte Nummer eingeben! ", "Nummer?", max\_Z)
Cells(max\_Z, Spalte("Nummer")).Value = Nummer
Alter = InputBox("Bitte Alter eingeben!", "Alter?", max\_Z)
Cells(max\_Z, Spalte("Alter")).Value = Alter
End Sub
Function Spalte(ByVal Titel As String) As Long
Spalte = Application.Match(Titel, Rows(1), 0)
End Function