Zum Inhalt springen

VBA+Excel: Nach Makroaufuf funktionert der Button nicht mehr!


Pointerman

Empfohlene Beiträge

Moin!

Ich habe in VBA ein Makro geschrieben und möcht dieses mit einem Button in der Symbolleiste aufrufen. Leider funktioniert der Spaß nur einmal. Beim Zweiten Aufruf bekomme ich eine Fehlermeldung, dass die Datei Convert.cvs (die wird im Makro gespeichert) nicht gefunden werden kann. Hier erstmal der Code:

Sub Konvertieren()
Dim WBName As String
Const sVerzeichnis = "E:\test\"
WBName = ActiveWorkbook.FullName
ActiveWorkbook.Save
Application.DisplayAlerts = False
Sheets("datentransfer").SaveAs Filename:=sVerzeichnis & "Convert.csv", FileFormat:=xlCSV
Application.DisplayAlerts = True
Workbooks.Open WBName
Shell (sVerzeichnis & "convert.exe")
ThisWorkbook.Close SaveChanges:=False
End Sub[/PHP]

Nun zum Sinn des ganzen:

Das aktive Exceldokument wird gespeichert.

Dann wird es als CSV-Datei gespeichert.

Jetzt ist die CSV-Datei aktiv, also die Originaldatei wieder öffnen.

Jetzt wird eine Exe-DAtei aufgerufen, die die CSV-DAtei verarbeitet.

Zum Schluss noch die CSV-DAtei schließen, so daß nur noch das Originaldokument offen ist.

Dummerweise tritt jetzt bei jedem weiteren Aufruf durch den Button der oben beschriebene Fehler auf.

Irgendwelche Ideen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin!

Beim SaveAs.

Sehe ich da etwa Licht am Horizont? Kennst Du das Problem?

Ach ja, was ich ganz vergessen hatte:

Wenn der Fehler erstmal kommt und ich nochmal auf "Makro zuweisen" gehe, dann ist auch die Convert.csv als Ausführungsort des Makros eingetragen (damit meine ich Convert.csv!Konvertieren).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin Frank!

Es funktioniert ja auch wunderbar! Erst wenn man das Makro mit einem Button ausführt gibt es Fehler(Da auch erst ab dem 2. Mal). Er scheint beim speichern in der CSV-Datei den Speicherort, der im Button angegeben ist von der XLS auf die CSV umzusetzten. Ich hab da in einer MSDN-Newsgroup die Lösung bekommen:

Einfach den Ort des Makros im Schalter ändern

(CommandBars.ActionControl.OnAction = WBName & "!Konvertieren").

Damit kann man das Makro auch wiederholt mit dem Button aufrufen.

Danke trotzdem!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...