online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Ulle-gt5 vom 04.03.2021, 18:30 Options

Lösung

Makro-richtige Zuordnung fehlt!

Hallo,ich brauch mal wieder Hilfe!!
Hab mir mit eurer Hilfe ein Makro zusammengebaut,
was auch gut und schnell arbeitet.(im Versuch)
Also
1 Schritt- Speichern OK
2 Schritt- Drucken OK
3 Schritt- Datenblock zusammenstellen und verschieben OK
jetzt kommt's -jetzt auf die Ursprungsmappe zurück den erstellten Datenblock löschen und C5 aktivieren.(neuen Eingabe beginnen)
Also wenn ich die Mappe gespeichert habe heißt sie nicht mehr
"Einzelteil". Wie kann das Makro also die oben gespeicherte Mappe finden.
Danke schon mal für euere Mühe
Schönen Abend
Gruß
Ulle


Sub DateiSpeicherDruckenGIVspeichern()
Dim verz, dname As String
verz = Cells(76, 5)
dname = Cells(75, 5) & ".xls"
ActiveWorkbook.SaveAs Filename:=("g:\" & verz & "\" & dname) ', FileFormat:=xlNormal
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

Application.ScreenUpdating = False

ActiveSheet.Range("B57:J58").Copy 'Angebot
'Sheets("DATENSAMMLUNG").Select
Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column + 3).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column - 2) = ActiveSheet.Range("C6").Value

Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column - 1) = ActiveSheet.Range("C5").Value

Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column + 12) = ActiveSheet.Range("E60").Value

Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column + 2) = ActiveSheet.Range("E10").Value

Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column + 1) = ActiveSheet.Range("C10").Value

Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column + 0) = ActiveSheet.Range("G5").Value

Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("C45").Value

Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("C42").Value

Range("c65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("C43").Value

Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("C44").Value

ActiveSheet.Range("B30:B40").Copy
Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = "."

Range("C65536").End(xlUp).Select
Sheets("Einzelteil").Select
Application.CutCopyMode = False

ActiveSheet.Range("A131:O145").Copy
Windows("Stammdaten.xls").Activate
Sheets("Datensammlung").Select
Range("C65536").End(xlUp).Select
Cells(ActiveCell.Row + 3, ActiveCell.Column - 2).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False



Windows("Einzelteil.xls").Activate
Sheets("Einzelteil").Select

Range("A131:O145").Select
Application.CutCopyMode = False
Selection.ClearContents

Application.CutCopyMode = False
Range("C5").Select
End Sub


Antwort schreiben

Antwort 1 von nighty vom 05.03.2021, 14:51 Options

hi ulle ^^

ThisWorkbook
ist die mappe woraus das makro gestartet worden ist

ein beispiel der syntax
ThisWorkbook.ActiveSheet.Range("B30:B40").Copy


und wenn es darum ginge den zuletzt gespeicherten dateinamen festzuhalten

dann halte den dateinamen mit einer variablen fest,auf der du spaeter zugreifen kannst

gruss nighty

Antwort 2 von Ulle-gt5 vom 05.03.2021, 20:34 Options

Hallo nighty,
das hast du schön gesagt und so habe ich es mir auch vorgestellt . Ich kann lesen und nachschlagen was ich will, ich begreife es erst wenn ich es mal gesehen habe.Das ganze VBA macht ja Sinn, wenn man es verstanden hat.
Könntest du mir an Hand meines Makros mal die Variable festlegen und zeigen wie man sie aufruft (die Variable oder Datei)
schon mal Danke
Gruß
Ulle

Antwort 3 von nighty vom 06.03.2021, 11:42 OptionsLösung

Lösung
hi Ulle ^^

2 beispiele

gruss nighty

Sub Beisp0fuerEineDatei()
    Dim SaveDaten As String 'zum anfang setzen
    SaveDaten = "g:\" & verz & "\" & dname 'vor der zeile setzen wo gespeichert wird.SaveDaten beinhaltet nun den kommpletten pfad wie dateinamen
End Sub

Sub Beisp1fuerMehrereDateien()
    ReDim SaveDaten(0) As String 'zum anfang setzen
    Dim IndexZaehler As Integer  'zum anfang setzen
    Dim Zaehler As Integer 'zum anfang setzen
    SaveDaten(IndexZaehler) = "g:\" & verz & "\" & dname 'vor der zeile setzen wo gespeichert wird
    IndexZaehler = IndexZaehler + 1  'nach der zeile setzen wo gespeichert wird
    ReDim Preserve SaveDaten(IndexZaehler) 'redimensionierung eines eindimensionalen arrays,preserv damit nix verloren geht
'ein beispiel einer schleife um das array auszulesen
    For Zaehler = 0 To UBound(SaveDaten(0)) 'beispiel einer schleife wie das array auszulesen waere,Ubound um das ende des array zu erfassen
    Cells(Zaehler, 1) = SaveDaten(Zaehler) 'hier hab ich als beispiel cells als ausgabe gewaehlt,genauso koennte es eine abfrage sein etc.
    Next Zaehler 'ende der schleife
End Sub


noch ergaenzend zu deinem code,versuche mal die selectionen zu minimieren soweit du kannst,spaeter bei mehr erfahrung kommplett verbannen

diese sind sehr zeitintensiv,aber nicht zwingend erforderlich :-)

Antwort 4 von Ulle-gt5 vom 06.03.2021, 17:59 Options

Hallo nighty,
erst mal danke für deine Antwort, ich habe noch nichts versucht!
Ich klaube nur wir machen es zu kompliziert, hier mal eine Erklärung.
Die Mappe Stammdaten mit Blatt Datensammlung ist immer geöffnet!!!!
Die Mappe Einzelteil mit Blatt Einzelteil wird geöffnet,ein Einzelteil wird kalkuliert und unter
verz = Cells(76, 5)
dname = Cells(75, 5) & ".xls"
ActiveWorkbook.SaveAs Filename:=("g:\" & verz & "\" & dname) ', FileFormat:=xlNormal

gespeichert.
Nun wird ein Datenblock erzeugt und auf Stammdaten/Datensammlung gespeichert.
Soweit funktioniert alles!!!!
Jetzt möchte ich in das offene aber nicht aktive Blatt mit dem Namen dname zurück und dort weiter arbeiten.

Also ich glaube man muß im Makro bei
Windows("Einzelteil.xls").Activate
Sheets("Einzelteil").Select

nur was anderes einsetzen, aufrufen oder so.
Ich hoffe ich habe es verständlich erklärt
viele Grüße
Ulle

Antwort 5 von fedjo vom 06.03.2021, 18:30 Options

Hallo Ulle,
versuch es mal mit den SedKeys:
SendKeys "%{TAB}"
Es wird die letzte aktive Seite angezeigt.
Gruß
fedjo

Zitat:
Windows("Einzelteil.xls").Activate
Sheets("Einzelteil").Select

Antwort 6 von Ulle-gt5 vom 06.03.2021, 20:58 Options

Hallo ihr ,
ist ja schön das mein Problem jetzt schon zwei beschäftigt.
Also Fedjo dein SendKeys "%{TAB}" funktioniert, ich sehe
das richtige Blatt aber es ist nicht Aktiv.
Alle weiteren Befehle werden ignoriert.

Hi nighty,
die Sache mit der Variablen ist ganz interesant. Ich hab nur noch nicht verstanden, wie ich die Variable wieder aufrufe.
gruß
Ulle

Antwort 7 von fedjo vom 07.03.2021, 14:37 Options

Hallo Ulle
Zitat:
verz = Cells(76, 5)
dname = Cells(75, 5) & ".xls"
ActiveWorkbook.SaveAs Filename:=("g:\" & verz & "\" & dname) ', FileFormat:=xlNormal


Ich gehe davon aus wenn du die Arbeitmappe speicherst, das der Dateiname aus Zelle E75 kommt.
Wenn die gespeicherte Datei aktiviert werden soll dann vielleicht so:

Sub Arbeitsmappe()
Dim strDateiname As String
strDateiname = Range("E75").Value & ".xls"
Windows(strDateiname).Activate
Sheets("Tabelle1").Activate
End Sub

Gruß
fedjo

Antwort 8 von Ulle-gt5 vom 07.03.2021, 15:28 Options

Hallo Fedjo,Hallo nighty,
ihr habt mein Problem beseitigt. Danke!!!!
Ich habe die Ganze Zeit die Lösung vor Augen und habe es nicht geschnallt.
Ich habe die ganze Zeit versucht was zu öffnen was es garnicht gab.
Das Tabellenblatt behält doch seinen Namen und ich wollte es
unter dem gespeicherten Namen öffnen.
Das sind so die Lapalien die einen tagelang aufhalten.
noch mal besten Dank euch beiden.
Ein schönes Wochenende wünsche ich euch.
gruß
Ulle

Ähnliche Themen

Ausstieg Makro + allgem. Makro-Frage
Tomschi  28.08.2007 - 52 Hits - 2 Antworten

excel zuordnung name zu Wert
wieber  20.11.2007 - 112 Hits - 1 Antwort

Prozent - richtige Formel ?
Meikel  17.04.2008 - 30 Hits - 3 Antworten

Daten in richtige zeile einfügen
Weiss_nix  27.07.2008 - 54 Hits - 5 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 11:26:25 2026