Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1664to1668
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Textfeld Inhalt aus VBA in Excel übertragen
08.01.2019 13:25:33
Artur
Guten Tag liebe User,
ich habe folgendes Problem.
ich habe eine Tabelle " Bestand " und eine Userform1 erstellt.
Diese Userform1 kann die Daten von Bestand mittlerweile abrufen, ich möchte jedoch auch hinkriegen das die Textfelder in denen der aktuelle Bestand eingetragen wird in die Bestandtabelle übertragen wird.
Kurz gesagt:
Spalte A = Fahrzeugnummern
Spalte B - CH : Bestand der Ausrüstung der Fahrzeuge
TextBoxen in der Userform1 nehmen die Werte auf, jedoch kriege ich den Code fürs "speichern" nicht hin.
TextBox1 soll den Wert in Spalte B eintragen + die Richtige Fahrzeugnummer vorher raussuchen, anhand von in Combobox1 angegebener Nummer.
Textbox2 soll den Wert in Spalte C eintragen + die Richtige Fahrzeugnummer vorher raussuchen.anhand von in Combobox1 angegebener Nummer.
Derzeitiger Code fürs abrufen :
Private Sub ComboBox1_Change()
'Fahrzeug wurde ausgewählt, die Daten sollen hochgeladen werden
Dim i As Long, lastrow As Long
lastrow = Sheets("Bestand").Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To lastrow
If Sheets("bestand").Cells(i, "A").Value = (Me.ComboBox1) Or _
Sheets("Bestand").Cells(i, "A").Value = Val(Me.ComboBox1) Then
Me.Liste2 = Sheets("Bestand").Cells(i, "C").Value 'Fahrzeugschlüssel
Me.Liste3 = Sheets("Bestand").Cells(i, "D").Value 'Tankschlüssel
Me.Liste4 = Sheets("Bestand").Cells(i, "E").Value 'Handschuhfachschlüssel
Me.Liste5 = Sheets("Bestand").Cells(i, "F").Value 'Drucker
Me.Liste6 = Sheets("Bestand").Cells(i, "G").Value 'Wandler 220V
Me.Liste7 = Sheets("Bestand").Cells(i, "H").Value 'Adapter Kurz 12-24 V
Me.Liste8 = Sheets("Bestand").Cells(i, "I").Value 'Autoradio
End If
Next
End Sub

Danke schon im Voraus für Hilfe!
Artur

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
mehrfach..
08.01.2019 14:26:20
UweD
AW: Textfeld Inhalt aus VBA in Excel übertragen
08.01.2019 14:40:08
Piet
Hall Artur
ich biete dir eine Lösung an die aus drei Makros besteht. Entscheide selbst welches du nimmst!
Jedes hat eine andere Funktion, d.h., es gibt drei verschiedene Lösungswege! Das Makro gehört in ein normales Modul
Ein Grundgedanke ist, das du ja einmal die Fahrgestell Nummer suchen must, und das bei der TextBox!
Das erste Makro gibt dir die ZielAdr als String zurück, dann kannst du im UserForm Code der aktiven TextBox weitermachen.
Das zweite Makro erwartet von der TextBox die Angabe der Spalte wo der Text eingefügt werden soll und den Wert (Text).
Das dritte Makro geht über einen Button "Daten einfügen" und fügt die Daten aus allen TextBoxen in die Tabelle ein
Beim dritten Makro must du die richtigen Spalten und TextBox Nr. bitte noch selbst angeben.
Ich hoffe das dir dieses Makro weiterhilft, und du lernst das man VBA auf mehreren Wegen einsetzen kann.
mfg Piet
Public ZielAdr As String      'Öffentliche Adress Variable für UserForm Textfeld
Public Spalte As Integer      'Gibt die Daten Spalte in der Tabelle zum einfügen an
Public Wert As Variant        'Übergibt den Wert aus der TextBox zur Eingabe in Tabelle
Dim i As Long, lastrow As Long
'sucht nur Adresse der Fahrgestell Nummer!!
'** Rückgabe der Adresse an die TextBox 1-xx
Sub FahrgestellNr_suchen()
lastrow = Sheets("Bestand").Range("A" & Rows.Count).End(xlUp).Row
ZielAdr = Empty   'beim Einsprung immer löschen!!
For i = 2 To lastrow + 1
If .Cells(i, "A").Value = Me.ComboBox1 Then
ZielAdr = Sheets("Bestand").Cells(i, "A").Address
Exit For
End If
Next
End Sub
'sucht nur Adresse der Fahrgestell Nummer!!
'fügt direkt den Wert aus der Aktiven TextBox ein
Sub TextBoxDaten_einfügen()
If Spalte = Empty Or Wert = Empty Then _
MsgBox "Eingabe nicht korrekt, Spalte/Wert fehlt!!": Exit Sub
With Worksheets("Bestand")
lastrow = .Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To lastrow
If .Cells(i, "A").Value = Me.ComboBox1 Then
'hier muss Spalte und Wert angegeben sein!
.Cells(i, Spalte).Value = Wert
Exit For
End If
Next
Spalte = Empty: Wert = Empty  'Öffentliche Variable löschen!
End With
End Sub
'übertragt die Daten aus allen TextBoxen in Tabelle
Sub Alle_Fahrzeugdaten_übertragen()
With Worksheets("Bestand")
lastrow = .Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To lastrow + 1
If .Cells(i, "A").Value = Me.ComboBox1 Then
ZielAdr = Sheets("Bestand").Cells(i, "A").Address
Exit For
End If
Next
If i > lastrow Then MsgBox Me.ComboBox1 & "  Konnte die Fahrgestell Nummer nicht finden!":  _
Exit Sub
'Werte aus allen TextBoxen übernehmen
.Cells(i, "xxx").Value = Me.Textbox1
.Cells(i, "xxx").Value = Me.Textbox2
.Cells(i, "xxx").Value = Me.Textbox3
'usw.  .....
End With
End Sub

Anzeige
AW: Textfeld Inhalt aus VBA in Excel übertragen
08.01.2019 15:00:02
Artur
Hallo Piet,
danke erstmal für die Antwort und deine Zeit! Ich probiere das sofort aus !
Gruß Artur
AW: Textfeld Inhalt aus VBA in Excel übertragen
08.01.2019 15:17:15
Artur
Hallo Piet,
ich bekomme das mit dem Ausfüllen nicht wirklich hin, kannst du mir erklären was genau mit 'Öffentlichen Variablen gemeint ist?
Welche Spalte ist hier gemeint?
'hier muss Spalte und Wert angegeben sein!
.Cells(i, Spalte).Value = Wert
und der gesamte Code wird hinter dem Button hinterlegt der zum Übertragen der Daten gedacht ist oder?
LG und Vielen dank!
AW: Textfeld Inhalt aus VBA in Excel übertragen
08.01.2019 15:28:33
Artur
Hallo nochmal,
ich habe nun das soweit übertragen und bekomme jetzt diesen Fehler : Fehler beim Kompilieren: Ungültiges Attribut in Sub oder Function
Was genau ist mit dem Fehler gemeint?
Private Sub CommandButton8_Click()
Public ZielAdr As String      'Öffentliche Adress Variable für UserForm Textfeld
Public Spalte As Integer      'Gibt die Daten Spalte in der Tabelle zum einfügen an
Public Wert As Variant        'Übergibt den Wert aus der TextBox zur Eingabe in Tabelle
Dim i As Long, lastrow As Long
Sub Alle_Fahrzeugdaten_übertragen()
'übertragt die Daten aus allen TextBoxen in Tabelle
With Worksheets("Bestand")
lastrow = .Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To lastrow + 1
If .Cells(i, "A").Value = Me.ComboBox1 Then
ZielAdr = Worksheets("Bestand").Cells(i, "A").Address
Exit For
End If
Next
If i > lastrow Then MsgBox Me.ComboBox1 & "  Konnte die Fahrgestell Nummer nicht finden!": _
Exit Sub
'Werte aus allen TextBoxen übernehmen
.Cells(i, "2").Value = Me.Liste2
.Cells(i, "3").Value = Me.Liste3
.Cells(i, "4").Value = Me.Liste4
'usw.  .....
End With
End Sub

Anzeige
AW: Textfeld Inhalt aus VBA in Excel übertragen
09.01.2019 14:51:08
Piet
Hallo Artur
ich habe schon ein Interesse daran die Sache ans laufen zu bekommen. Hast du die Möglichkeit eine Beispieldatei mit 10-20 Fantasie Daten hochzuladen? Das würde uns beiden die Fehlersuche enorm erleichtern. Aus der Ferne ist das immer ein heiters "Ratespiel"!
Öffentliche Variable:
Wenn du eine Variable mit Dim im Makro deklarierst gilt sie NUR für dieses Makro. Sind im Modul weitere Makros und willst du eine Variable in einem anderes Makro verarbeiten setzt man Dim ganz oben im Blatt. Die kann von anderen Makros im Blatt übernommen werden. - Nachteil: diese Variablen werden beim Makro Strart NICHT automatisch von Excel gelöscht!!
Jede im Makro direkt deklarierte Variable hat am Anfang den Wert Empty! Steht sie mit Dim oben im Blatt bleibt der Wert in diesem Modul erhalten. Steht oben Public oder (alte 97 Form) Global ist sie für alle Module, alle Makros gültig! Das nennt man Öffentlich, weil jedes Makro, egal in welchem Modul, darauf zugreifen kann. Muss sie gelöscht sein setzt man sie im Code auf 0 oder Empty!
So kannst du in der Userform ein Call machen, und vorher die Spalte und den Wert ans Modul1 übergeben. Vorteil:
Bei 10 Textboxen kannst du einfach nur Call mit den Variablen angeben, sonst müsst du 10x für jede TextBox ein Makro zum verarbeiten schreiben. Funktioniert auch, ist aber unnötig viel Arbeit. Ich hoffe du hast damit den Prof Trick verstanden, entweder die Adresse durch Call zu suchen, oder im Call Programm alle Texfelder durch Übergabe der Werte verarbeiten zu lassen. Was du wnimmst bleibt dier überlassen.
Ich warte mal deine Antwort ab. Eine Beispieldatei waere sicher vorteihaft.
mfg Piet
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige