Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1888to1892
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

2.Arbeistmappe öffnen u. bearbeiten

2.Arbeistmappe öffnen u. bearbeiten
29.06.2022 12:00:43
Sandra
Hallo Zusammen,
ich hoffe es findet sich jemand der mir einen Tipp geben kann.
Vieles verstehe ich in VBA, aber an dieser Stelle hört es auf.
Ich habe eine Arbeitsmappe "Maschine_1" in der ich bestimmte Optionen auswählen kann, hier öffnet sich eine MsgBox mit der Abfrage ob eine zweite Arbeitsmappe "Maschine_2" geöffnet werden soll. Das klappt auch noch, aber jetzt weiß ich nicht mehr wie es weiter gehen könnte.
Ich möchte in der Arbeitsmappe "Maschine_2" auch diverse Optionen ausfüllen, wodurch Zellen mit Preisen gefüllt werden, diese möchte ich dann kopieren (Tabellenblatt "Daten A1"; Tabellenblatt "Kalkulation D3") und in meine erste Arbeitsmappe "Maschine_1" kopieren (auf Tabellenblatt "Kalkulation A7"; "Kalkulation A10"). Wenn möglich möchte ich diese Kopier-Befehl über einen Button auslösen, der nur erscheint, wenn die Arbeitsmappe "Maschine_2" aus der "Maschine_1" geöffnet wird.
Hierbei soll auch die Arbeitsmappe "Maschine_2" wieder geschlossen werden.
Ich hoffe es gibt einen von Euch, der mir helfen könnte. Herzlichen Dank schonmal im Voraus.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2.Arbeistmappe öffnen u. bearbeiten
29.06.2022 12:12:54
ralf_b
wenn du dir beim Öffnen der Maschine 2 die Objektreferenz in eine Variable holst, dann kannst du auf Daten in Maschine 2 zugreifen.
Natürlich wäre es nicht verkehrt auch Maschine1 in solch einer Variablen vorzuhalten.
Hintergrund: Beim Öffnen von Mappen wird die neu geöffnete Mappe die aktive Mappe. Dadurch können unsauber getrennte Range, Cells, und Worksheetbezichnungen auf die falsche Mappe zeigen. Ist es das was du wissen wolltes?

AW: 2.Arbeistmappe öffnen u. bearbeiten
29.06.2022 22:25:08
sandra
Danke für dein Antwort.
ich muss gestehen, dass ich nicht so richtig weiß, wie ich das umsetzen kann.
ich öffne meine Datei wie folgt:
If Range("J18") = "maschine_2" Then
a = MsgBox("Möchten Sie das Kalkulation Tool 'Maschine_2' öffnen?", vbYesNo)
If a = vbYes Then
Workbooks.Open "C:\Users\Maschine_2.xlsm"
Else
End If
End if
Aber jetzt weiß ich einfach nicht, wie ich weiter machen kann bzw. soll... um die entsprechenden Zellen auszufüllen und diese dann zu kopieren und in der Ursprungsdatei einzufügen.
Anzeige
AW: 2.Arbeistmappe öffnen u. bearbeiten
29.06.2022 22:35:16
sandra
was mir gerade bewusst wird, ist, dass meine Makro nach dieser MsgBox auch noch weiter läuft.
Also es werden noch einige Werte geändert und angepasst.
Im Netz habe ich irgendeinen Code gefunden, der das Makro pausieren soll... aber ich hab keine Ahnung was in diesem Makro passiert.
Private Declare Sub Sleep Lib "kernel32.dll" ( _
ByVal dwMilliseconds As Long)
Private blnGo As Boolean

Public Sub warten()
Do
Sleep 100
DoEvents
Loop Until blnGo
blnGo = False
MsgBox "OK"
End Sub

Public Sub weiter()
blnGo = True
End Sub

Anzeige
AW: 2.Arbeistmappe öffnen u. bearbeiten
30.06.2022 18:07:07
ralf_b
Diese Codeunterbrechung mit sleep soll bitte was bringen?
Vielleicht ewig warten bis irgendwann mal Jemand den Button drückt?
Ich hab dir hier was zusammengestrickt. Aber ohne genaue Kenntnis deiner Abläufe gibts nur das.

Sub bla()
Dim objWbk As Workbook
Dim objAktWb As Workbook
Set ObjActWb = ThisWorkbook 'referenz auf dieses Workbook
If Range("J18") = "maschine_2" Then
If vbYes = MsgBox("Möchten Sie das Kalkulation Tool 'Maschine_2' öffnen?", vbYesNo) Then
Set objWbk = Workbooks.Open("C:\Users\Maschine_2.xlsm")
'Hier den button in der ersten Mappe aktivieren
'  ObjActwb. ....usw, je nachdem wo und  wie der Button ist
'z.b. mit objWbk.worksheets("Kalkulation1").Range("A1") hast du Zugriff auf die Zellen
' Aber das kopieren und schliessen sollte im Code des buttons passieren. und nicht hier.
'dort dann die objektreferenz auf maschine_2 holen. Da das Workbook offen ist,
' befindet es sich in der Workbooks Aufistung
For Each wb In Application.Workbooks
If wb.Name Like "*achine_2" Then Set objWbk = wb: Exit For
Next
End If
End If
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige