Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1880to1884
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
Inhaltsverzeichnis

Werte an andere Datei übergeben und nu?

Werte an andere Datei übergeben und nu?
25.04.2022 14:09:29
Vassago
Moin Moin,
ich bin Recht neu in VBA. Ich habe mir diesen Code geschrieben um Werte aus unterschiedlichen Textboxen einer UserForm an eine weiter ExcelTabelle weiterzugeben und diese dort in die passenden Zellen einzugeben. Wahrscheinlich ist der Code nicht so schön, aber ich bin stolz das es überhaupt funktioniert.
Leider tritt dann folgendes Problem auf: Die neugeöffnete Datei lässt sich nicht schließen ohne das Userformscript zu killen. Am liebsten wäre es mir, wenn die neue Datei im Hintergrund geöffnet bleibt und ich zur userform zurückkehre oder dito wenn ich die 2. Datei schließe. Würde mich über nen Tipp freuen.

Sub HablgeBut_Click()
'Variablen Deklaration
Dim sFileName, sKstrNr, sName, sVName, sOrt, sStreet, sTelefon, sgas, sstrom, swasser, ssnr, slwl, sSM As String
sKstnr = KstNrBox.Text
sName = NameBox.Text
sVName = VNameBox.Text
sOrt = OrtBox.Text
sStreet = StreetBox.Text
sTelefon = TelBox.Text
snvbgas = nvbgasBox.Text
sstrom = nvbstromBox.Text
swasser = nvbwasserBox.Text
ssnr = nvbsnrBox.Text
slwl = nvblwlBox.Text
stSM = telekomBox.Text
sFileName = "C:\\Hausanschluss.xlsm"
If sKstnr = "" Then
MsgBox "Keine Kostenstelle ausgewählt. Bitte Kostenstelle wählen"
Exit Sub
Else
Workbooks.Open Filename:=sFileName, ReadOnly:=True
Workbooks("Hausanschlusst.xlsm").Worksheets("Datenblatt").Activate
Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Cells(2, 2).Value = sOrt
Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Cells(3, 2).Value = sStreet
Workbooks("Hausanschluss..xlsm").Worksheets("Datenblatt").Cells(6, 2).Value = sName
Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Cells(2, 2).Value = sOrt
Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Cells(2, 6).Value = sKstnr
Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Cells(13, 2).Value = sgas
Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Cells(14, 2).Value = sstrom
Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Cells(15, 2).Value = swasser
Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Cells(16, 2).Value = ssnr
Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Cells(17, 2).Value = stSM
MsgBox "Wertr für Kostenstelle " & sKstnr & " übergeben."
Exit Sub
Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Deactivate
End If
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Werte an andere Datei übergeben und nu?
25.04.2022 14:22:15
onur
Weisst du eigentlich, dass jeglicher Code hinter "Exit Sub" nicht ausgeführt wird?
Noch ein Tip: Einweg-Variablen machen wenig Sinn, da sie nur 1x verwendet werden. Dann wäre es besser, wenn du statt:

Dim sFileName, sKstrNr ...
sKstnr = KstNrBox.Text
Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Cells(2, 6).Value = sKstnr
....
nur

Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Cells(2, 6).Value = KstNrBox.Text
schreiben würdest.

AW: Werte an andere Datei übergeben und nu?
25.04.2022 14:30:26
Vassago

Weisst du eigentlich, dass jeglicher Code hinter "Exit Sub" nicht ausgeführt wird?
Das macht natürlich Sinn. My Bad.

nur
Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Cells(2, 6).Value = KstNrBox.Text
schreiben würdest.
ist auch viel schicker. Danke. Ich hatte das erst anders geplant. Und ich war mir nicht ganz sicher ob das übergeben einfach klappt, daher hatte ich erst rumprobiert mit einer Variablen, als es dann lief, hab ich es weitergemacht.
Anzeige
AW: Werte an andere Datei übergeben und nu?
25.04.2022 14:38:05
onur
Noch was - Wenn du statt

Workbooks("Hausanschlusst.xlsm").Worksheets("Datenblatt").Activate
Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Cells(2, 2).Value = sOrt
Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Cells(3, 2).Value = sStreet
....
DAS schreibst, ist es übersichtlicher und macht weniger Tipparbeit:

With Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt")
.Cells(2, 2).Value = sOrt
.Cells(3, 2).Value = sStreet
End With
Ausserdem hast du dadurch auch evtl weniger Tippfehler (siehe "Hausanschlusst.xlsm" oder "Hausanschluss..xlsm") . :)
Anzeige
AW: Werte an andere Datei übergeben und nu?
25.04.2022 15:03:52
Vassago

Noch was - Wenn du statt
Workbooks("Hausanschlusst.xlsm").Worksheets("Datenblatt").Activate
Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Cells(2, 2).Value = sOrt
Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt").Cells(3, 2).Value = sStreet
DAS schreibst, ist es übersichtlicher und macht weniger Tipparbeit:
With Workbooks("Hausanschluss.xlsm").Worksheets("Datenblatt")
.Cells(2, 2).Value = sOrt
.Cells(3, 2).Value = sStreet
End With
Ausserdem hast du dadurch auch evtl weniger Tippfehler (siehe "Hausanschlusst.xlsm" oder "Hausanschluss..xlsm") . :)
Nochmals vielen Dank
Anzeige
AW: Werte an andere Datei übergeben und nu?
25.04.2022 14:44:16
ChrisL
Hi
Den Umweg via String-Variable würde ich nicht machen, aber wenn, dann mit vollständiger Deklaration.

Sub HablgeBut_Click()
'Variablen Deklaration
Dim sFileName As String, sKstrNr As String, sName As String, sVName As String
Dim sOrt As String, sStreet As String, sTelefon As String, sgas As String
Dim sstrom As String, swasser As String, ssnr As String, slwl As String, sSM As String
Dim wb1 As Workbook, wb2 As Workbook
sKstrNr = KstNrBox.Text
sName = NameBox.Text
sVName = VNameBox.Text
sOrt = OrtBox.Text
sStreet = StreetBox.Text
sTelefon = TelBox.Text
snvbgas = nvbgasBox.Text
sstrom = nvbstromBox.Text
swasser = nvbwasserBox.Text
ssnr = nvbsnrBox.Text
slwl = nvblwlBox.Text
stSM = telekomBox.Text
sFileName = "C:\Pfad\Hausanschluss.xlsm"
If sKstrNr = "" Then
MsgBox "Keine Kostenstelle ausgewählt. Bitte Kostenstelle wählen"
Exit Sub
Else
Set wb1 = ThisWorkbook
Set wb2 = Workbooks.Open(Filename:=sFileName, ReadOnly:=True)
With wb2.Worksheets("Datenblatt")
.Cells(2, 2).Value = sOrt
.Cells(3, 2).Value = sStreet
.Cells(6, 2).Value = sName
.Cells(2, 2).Value = sOrt
.Cells(2, 6).Value = sKstnr
.Cells(13, 2).Value = sgas
.Cells(14, 2).Value = sstrom
.Cells(15, 2).Value = swasser
.Cells(16, 2).Value = ssnr
.Cells(17, 2).Value = stSM
End With
MsgBox "Wert für Kostenstelle " & sKstrNr & " übergeben."
wb1.Activate
End If
End Sub
cu
Chris
Anzeige
AW: Werte an andere Datei übergeben und nu?
25.04.2022 14:55:25
Vassago

Den Umweg via String-Variable würde ich nicht machen, aber wenn, dann mit vollständiger Deklaration.
Danke Chris. Werde deinen Code mit den Tipps von Onuor verknüpfen und es probieren. der Code sieht viel schlanker aus.
Bei den Variablen dachte ich, dass man Sie hintereinander wegschreiben kann, wenn Sie vom gleichen Typ sind. Wie gesagt neu in VBA. Programmieren ist bei mir laaange her... :-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige