Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1856to1860
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

Excel Programm laden mit VBA

Excel Programm laden mit VBA
24.11.2021 16:14:50
Edmund
Hallo, ich möchte mit VBA eine vorher gespeicherte Datei wieder laden, komme aber auf kein brauchbares Resultat.
Hier meine VBA zum speichern, eine dort abgespeicherte Berechnungen möchte ich zur weiteren Bearbeitung wieder laden:

Sub Berechnung_speichern()
'speichert die aktuelle Berechnung mit dem Namen des Objekte, dem aktuellen Datum und dem Namen des Bearbeiters
'im Ordner der in der Vorbelegung - J2 eingegeben wurde
Dim NeuerName As String, Speicherpfad As String, antwort1, antwort2, antwort3
antwort1 = MsgBox("Möchten Sie die Berechnung für" & vbLf & _
Sheets("Eingabe").Range("D9").Value & vbLf & _
"speichern?", vbExclamation + vbYesNoCancel, "ImmoGrandeTool")
'Wenn das Feld "Speicheradresse" (Vorbelegung J2) keine Daten enthält, wird ein MsgBox mit einem Fehler angezeigt
'und das Speichern wird abgebrochen.
If Sheets("Vorbelegung").Range("J2").Value = "" Then
antwort3 = MsgBox("Ihre Berechnung kann nicht gespeichert werden!" & vbLf & _
"Sie haben keinen Speicherort angegeben!" & vbLf & _
"gehen Sie zuerst in die Vorbelegung" & vbLf & _
"und geben dort den Speicherort an!", vbCritical + vbOKOnly, "ImmoGrandeTool")
Exit Sub
End If
'Wenn das Feld "Objekt" (Eingabe D9) keine Daten enthält, wird ein MsgBox mit einem Fehler angezeigt
'und das Speichern wird abgebrochen.
If Sheets("Eingabe").Range("D9").Value = "" Then
antwort2 = MsgBox("Ihre Berechnung kann nicht gespeichert werden!" & vbLf & _
"Sie haben keine Objektadresse angegeben!", vbCritical + vbOKOnly, "ImmoGrandeTool")
Exit Sub
End If
Select Case antwort1
Case 6
Speicherpfad = Sheets("Vorbelegung").Range("J2").Value
NeuerName = Sheets("Eingabe").Range("D9").Value
ActiveWorkbook.SaveAs Filename:=Speicherpfad & NeuerName & "-" & Date & "-" & _
Sheets("Eingabe").Range("G27") & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
Application.Quit
Case 7
ThisWorkbook.Saved = True
Application.Quit
Case Else
End Select
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Excel Programm laden mit VBA
24.11.2021 23:31:53
Yal
Hallo Edmund,
deine Eingabe sind ganz klar.
Durch den SaveAs wird die aktuelle Datei unter einen neuen Namen gespeichert. Die Änderung seit dem Öffnen der originalen Datei werden nicht in der originalen Datei gespeichert.
Ich gehe davon aus, dass Du eine Kopie der aktuellen Stand speicehrn möchtest, aber die Datei noch unter den bisherigen Namen noch offen haben möchtest.
Das geht mit SaveCopyAs:
(ich habe die Nachrichten und Frage ausgelagert, um den Hauptstrang schlank zu halten)

Sub Berechnung_speichern()
'speichert die aktuelle Berechnung mit dem Namen des Objekte, dem aktuellen Datum und dem Namen des Bearbeiters
'im Ordner der in der Vorbelegung - J2 eingegeben wurde
Dim NeuerName As String
Dim Speicherpfad As String
Dim Bearbeiter  As String
'"Speicheradresse" (Vorbelegung J2) leer? Nachricht + kein Speichern
'"Objekt" (Eingabe D9) leer? Nachricht + Kein speichern
If FrageFürSpeichern Then
Speicherpfad = Sheets("Vorbelegung").Range("J2").Value
NeuerName = Sheets("Eingabe").Range("D9").Value
Bearbeiter = Sheets("Eingabe").Range("G27").Value
If Speicherpfad = "" Then Message_Vorbelegung: Exit Sub
If NeuerName = "" Then Message_Speicherort: Exit Sub
ActiveWorkbook.SaveCopyAs Speicherpfad & NeuerName & "-" & Date & "-" & Bearbeiter & ".xlsm"
End If
End Sub
Function FrageFürSpeichern() As Boolean
Dim Antw
Antw = MsgBox("Möchten Sie die Berechnung für" & vbLf & _
Sheets("Eingabe").Range("D9").Value & vbLf & _
"speichern?", vbExclamation + vbYesNoCancel, "ImmoGrandeTool")
FrageFürSpeichern = (Antw = vbYes)
End Function
Sub Message_Speicherort()
MsgBox "Ihre Berechnung kann nicht gespeichert werden!" & vbLf & _
"Sie haben keine Objektadresse angegeben!", vbCritical + vbOKOnly, "ImmoGrandeTool"
End Sub
Sub Message_Vorbelegung()
MsgBox "Ihre Berechnung kann nicht gespeichert werden!" & vbLf & _
"Sie haben keinen Speicherort angegeben!" & vbLf & _
"gehen Sie zuerst in die Vorbelegung" & vbLf & _
"und geben dort den Speicherort an!", vbCritical + vbOKOnly, "ImmoGrandeTool"
End Sub
VG
Yal
Anzeige
AW: Excel Programm laden mit VBA
25.11.2021 09:42:58
Edmund
Hallo Yal,
danke für deinen Hinweis mit dem SaveCopyAs, aber ich denke ich habe mich falsch ausgedrückt. Mir geht es um das Laden einer Datei.
Ich möchte aus meinem Programm eine Datei ( vorher abgespeicherte Berechnung ) wieder laden um sie weiter zu bearbeiten.
Wenn ich einen Link auf einen Button lege, geht alles wie ich es möchte, nur mit dem Nachteil, dass ich durch den Link keine Möglichkeit habe den Ort zu wählen wo ich die Dateien abgelegt habe. Ich habe in der " Vorbelegung J2 " den Speicherpfad festgelegt bzw. er ist vom Anwender einzutragen. Beim neuen Laden der Berechnung soll das Programm dann auch dort hinspringen und mir nur die :xlsm Dateien zum Laden anbieten.
Gruss Edmund
Anzeige
AW: Excel Programm laden mit VBA
25.11.2021 12:23:32
Rudi
Hallo,
dir ist schon klar, dass deine Originaldatei, z.B. Anpassung am Pfad, nicht gespeichert wird?
Somit hast du den Pfad zum Öffnen auch nicht unbedingt zur Verfügung.
Schau dir mal das Application.FileDialogs-Objekt an.
Schema:

Sub aaa()
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.InitialFileName = Speicherpfad & "*.xlsm"
If .Show = -1 Then
Workbooks.Open (.SelectedItems(1))
End If
End With
End Sub
Gruß
Rudi
AW: Excel Programm laden mit VBA
25.11.2021 13:15:35
Edmund
Hallo Rudi,
aus dem Blatt " Vorbelegung" wo die Speicheradresse eingetragen wird kommt der Anwender nicht ohne speichern raus, somit sollte die Adresse vorhanden sein.
Werde deinen Vorschlag aber mal ausprobieren.
Hier aber mein Versuch die gespeicherten Berechnungen aus dem Programm zuladen. Klappt alles perfekt, bis auf das ich hier einen festen Ordner und eine festes Laufwerk vorgegeben habe. Es sollte dort aber mein Speicherpfad ( Vorbelegung J2 ) stehen.
Klappt bei mir noch nicht so richtig
Schau mal drüber ob du eine Lösung hast ( sicher hast du eine :-) )
Gruss Edmund

Sub Berechnung_öffnen_mit_Pfadvorgabe()
'Anzeige des Öffnen-Dialogfensters mit voreingestelltem Pfad
Dim wb As Workbook
Dim lngZ As Long
Dim strFileName
Dim strFilter As String
Speicherort = Sheets("Vorbelegung").Range("J2").Value
'Dateifilter definieren
strFilter = "Excel-Dateien(*.xlsm), *.xlsm"
'Laufwerk und Pfad definieren, welcher geöffnet werden soll
ChDrive "O"
ChDir "O:\ImmoGrandeTool\Berechnungen"
'Den im Dialogfeld gewählten Namen auslesen
strFileName = Application.GetOpenFilename(strFilter)
'Prüfen, ob eine gültige Datei ausgewählt wurde
If strFileName = False Then Exit Sub
'Gewählte Datei öffnen
Set wb = Workbooks.Open(strFileName)
'Hinweis ausgeben
MsgBox "Die Datei" & vbLf & _
wb.Name & vbLf & _
"wurde geöffnet.", vbInformation, "ImmoGrandeTool"
End Sub

Anzeige
AW: Excel Programm laden mit VBA
25.11.2021 13:53:08
Rudi
Hallo,

'Laufwerk und Pfad definieren, welcher geöffnet werden soll
ChDrive Left(Speicherort,1)
ChDir Speicherort
Gruß
Rudi
AW: Excel Programm laden mit VBA
25.11.2021 14:35:08
Edmund
Juhu, perfekt, nun geht es so wie ich es mir wünsche.
Danke für deine Hilfe
Edmund

22 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige