Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
456to460
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
456to460
456to460
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro öffnet immer die alte Mappe

Makro öffnet immer die alte Mappe
20.07.2004 08:34:41
Matthias
Hallo Leute,ich habe ein Problem.
Ich habe in einer alten Mappe ein Makro erstellt, welches mir den Inhalt einer Tabelle in eine Textdatei umwandelt.
Dieses Makro habe ich dann mit einem Button verknüpft, sodass mit den Makro auch Inhalte anderer Mappen in eine Textdatei geschrieben werden können.
Leider ist es jetzt so beim Ausführen des Makros in anderen Mappen immer die alte Mappe mit geöffnet wird, in der ich den Button mit den Makro das erste mal verknüpft habe.
Das soll aber nicht sein.
Was kann man denn da machen? Hab gar keine Ahnung!!

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

Betreff
Datum
Anwender
Anzeige
AW: Makro öffnet immer die alte Mappe
20.07.2004 08:45:38
Harald
Hallo Matthias,
das liegt daran, dass das Makro in der "alten" Mappe gespeichert ist. Mit dem Button hast Du einen Verweis auf das Makro in der alten Mappe verknüpft. In den anderen Mappen ist das Makro ja gar nicht enthalten. Also muss Excel erst die alte Mappe öffnen, um an den code des Makros heranzukommen.
Lösen kannst Du das Problem, indem Du das Makro in ein Add-In umwandelst und im Excel-Add-In Verzeichnis speicherst. Dann noch über den Add-In Manager aktivieren und es steht Dir in allen Mappen zur Verfügung.
Achtung: Add-Ins kannst Du später nicht mehr bearbeiten/ändern. Daher solltest Du das Makro immer auch noch als XLS Datei speichern.
Gruß Harald
Anzeige
AW: Makro öffnet immer die alte Mappe
Matthias
Hallo Harald Kapp,
sie haben vorhin geschrieben, ich soll das makro in ein Add-in umwandeln.
Wie gehtn so etwas kompliziertes?
AW: Makro öffnet immer die alte Mappe
20.07.2004 10:45:16
Harald
Hallo Matthias,
Einfach die Datei mit dem makro (aber ohne Inhalt in den Tabellenblättern) mittels Datei - Speichern unter - Excel Add-in (*.xla) speichern.
Gruß Harald
AW: Makro öffnet immer die alte Mappe
Matthias
Jo hat super geklappt.
DANKE HARALD!!!
AW: Makro öffnet immer die alte Mappe
Hendrik
Moin, poste den Makrocode doch bitte einmal.
AW: Makro öffnet immer die alte Mappe
Matthias
so hier noch einmal mein code. Vielleicht kannst du ja noch etwas finden.
Option Explicit
Type myBreite
rechts As Boolean
breite As Integer
End Type
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Declare

Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare 

Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Sub WriteMeNeu(fname As String)
Dim breiten() As myBreite
Dim spalten As Integer
Dim i As Long, j As Integer
Dim vlen As Integer
Dim v As String
spalten = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
ReDim breiten(spalten)
For i = 1 To spalten
breiten(i).rechts = UCase(Right(Cells(1, i).Value, 1)) = "R"
breiten(i).breite = CInt(Val(Cells(1, i).Value))
Next
Open fname For Output As #1
For i = 2 To Cells(Cells.Rows.Count, 1).End(xlUp).Row
For j = 1 To spalten
v = CStr(Cells(i, j).Value)
vlen = Len(v)
If vlen > breiten(j).breite Then v = Left(v, breiten(j).breite)
If breiten(j).rechts Then
Print #1, Spc(breiten(j).breite - vlen); v;
Else
Print #1, v; Spc(breiten(j).breite - vlen);
End If
Next j
Print #1, ""
Next i
Close #1
End Sub


Sub Stuelikomplett()
Worksheets(2).Activate
'Hier wird die Verknüpfung aktualisiert
ActiveWorkbook.UpdateLink Name:="\\Server5\Konstruktion\Lagermappe2.xls", Type:=xlExcelLinks
'Hier wird die Schnittstellendatei für Infra Erzeugt
Worksheets(3).Activate
Dim msg As String
'msg = "Wählen Sie bitte einen Ordner aus:"
'MsgBox getdirectory(msg)
MsgBox "Name des InfraTextOrdner:    " & ActiveWindow.Caption
'MsgBox "Ist das Verzeichnis das wo es Hingespeichert werden soll? Wenn nicht Abbrechen und die Exceltabelle mit 'Speichern unter' dort abspeichern und dieses Makro erneut ausführen!    " & ActiveWorkbook.Path
WriteMeNeu ActiveWorkbook.Path & "\" & ActiveWindow.Caption & ".txt"
Worksheets(2).Activate
ActiveWindow.SelectedSheets.PrintPreview
'WriteMeNeu getdirectory ActiveWindow.Caption & "/.txt"
'WriteMeNeu ActiveWindow.Caption & ".txt"
'WriteMeNeu getdirectory(msg) & ActiveWindow.Caption & ".txt"
'WriteMeNeu getdirectory & "/SSD.txt"
'WriteMeNeu getdirectory
'MsgBox "Ist der Name wo es gespeichert werden soll richtig? " & ActiveWorkbook.Path
'WriteMeNeu getdirectory & "ActiveWindow.Caption"
End Sub


Function getdirectory(Optional msg) As String
Dim bInfo As BROWSEINFO
Dim Path As String
Dim r As Long, x As Long, pos As Integer
'   Ausgangsordner = Desktop
'bInfo.pidlRoot = 0&
bInfo.pidlRoot = 0&
'   Dialogtitel
If IsMissing(msg) Then
bInfo.lpszTitle = "Wählen Sie bitte einen Ordner aus."
Else
bInfo.lpszTitle = msg
End If
'   Rückgabe des Unterverzeichnisses
bInfo.ulFlags = &H1
'   Dialog anzeigen
x = SHBrowseForFolder(bInfo)
'   Ergebnis gliedern
Path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal Path)
If r Then
pos = InStr(Path, Chr$(0))
getdirectory = Left(Path, pos - 1)
Else
getdirectory = ""
End If
End Function

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige