Autor
|
Thema: Pfad in Makro angeben (6138 mal gelesen)
|
röhmler Mitglied Sachbearbeiter techn. Dokumentation
 
 Beiträge: 414 Registriert: 17.02.2004 AutoCAD Mechanical 2014
|
erstellt am: 06. Jun. 2013 11:18 <-- editieren / zitieren --> Unities abgeben:         
Hi, mein Kollege hat mit dem Makrorekorder ein Makro erstellt. Ich habe anfangs noch was reinkopiert, damit ein Fenster zur Dateiauswahl aufgeht. MEINE FRAGE kann man noch im Makro den Pfad definieren (wo die zu bearbeitenden dateien liegen) und wenn ja wie sieht der String aus? Hier das Makro Sub txt_doc() ' ' txt_doc Makro ' Makro aufgezeichnet am 06.06.2013 von kob.neumar ' Selection.WholeStory With ActiveDocument.Styles(wdStyleNormal).Font If .NameFarEast = .NameAscii Then .NameAscii = "" End If .NameFarEast = "" End With With ActiveDocument.PageSetup .LineNumbering.Active = False .Orientation = wdOrientLandscape .TopMargin = CentimetersToPoints(1.2) .BottomMargin = CentimetersToPoints(1.2) .LeftMargin = CentimetersToPoints(3) .RightMargin = CentimetersToPoints(2) .Gutter = CentimetersToPoints(0) .HeaderDistance = CentimetersToPoints(1.25) .FooterDistance = CentimetersToPoints(1.25) .PageWidth = CentimetersToPoints(29.7) .PageHeight = CentimetersToPoints(21) .FirstPageTray = wdPrinterDefaultBin .OtherPagesTray = wdPrinterDefaultBin .SectionStart = wdSectionNewPage .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .VerticalAlignment = wdAlignVerticalTop .SuppressEndnotes = False .MirrorMargins = False .TwoPagesOnOne = False .BookFoldPrinting = False .BookFoldRevPrinting = False .BookFoldPrintingSheets = 1 .GutterPos = wdGutterPosLeft End With With Selection.ParagraphFormat .SpaceBefore = 0 .SpaceBeforeAuto = False .SpaceAfter = 0 .SpaceAfterAuto = False .LineSpacingRule = wdLineSpaceExactly .LineSpacing = 9 .LineUnitBefore = 0 .LineUnitAfter = 0 End With Selection.Font.Name = "Lucida Console" Selection.Font.Size = 9 ActiveDocument.SaveAs FileName:="1233321.doc", FileFormat:= _ wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _ True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _ False, SaveNativePictureFormat:=False, SaveFormsData:=False, _ SaveAsAOCELetter:=False End Sub
VIELEN DANK
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Ehrenmitglied V.I.P. h.c. IT Admin (CAx)

 Beiträge: 8756 Registriert: 02.03.2000
|
erstellt am: 07. Jun. 2013 07:44 <-- editieren / zitieren --> Unities abgeben:          Nur für röhmler
Hallol röhmler, Zitat: Original erstellt von röhmler: kann man noch im Makro den Pfad definieren (wo die zu bearbeitenden dateien liegen) und wenn ja wie sieht der String aus? [...] Sub txt_doc() [...] ActiveDocument.SaveAs FileName:="1233321.doc", [...] End Sub
Ich bin mir nicht sicher, ob es das ist, was du suchst, aber dies ist die einzige STelle in deinem Makro, die in meinen Augen sinnvoll was mit Pfaden zu tun haben könnte. Im Parameter Filename:= kannst du den komplette Pfad angeben, unter dem die aktive Datei abgespeichert wird. Das kannst du einfach als Pfad eingeben: ActiveDocument.SaveAs FileName:="c:\temp\1233321.doc", [...] Wenn du eine (sehr einfache) Abfrage für den Pfad mit einbauen willst kannst du das über die Funktion Inputbox machen, z.B. so Code:
Dim myPfad as string myPfad = Inputbox("Bitte Speicherpfad und Name angeben","c:\temp\123321.doc") ActiveDocument.SaveAs FileName:=myPfad, [...]
Das ist natürlich nicht fertig, da sollten in ein paar Sicherheitschecks der Anwendereingaben mit rein, ob überhaupt was angegeben wurde, ob nur erlaubte Zeichen drin sind, ob Abbrechen geklickt wurde etc. Ciao, Stefan
------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
röhmler Mitglied Sachbearbeiter techn. Dokumentation
 
 Beiträge: 414 Registriert: 17.02.2004 AutoCAD Mechanical 2014
|
erstellt am: 07. Jun. 2013 08:47 <-- editieren / zitieren --> Unities abgeben:         
Hi Stefan, guten Morgen. Erst mal danke für Deine Antwort. Leider verstehe ich gar nichts von Makros - alles aufgezeichnet und die ersten Zeilen hat ein Bekannter gemacht. Mir geht`s darum, dass das Fenster "ÖFFNEN" immer den gleichen Ordner (halbfertig) anzeigt, die Dateien in dem Ordner ändern sich ständig, also Namen (****.doc) muß nicht angegeben werden, nur der Pfad bis zu dem bestimmten Ordner. Der Pfad: C:/clientdaten/kob/kob.niewrzella/geschäftlich/deutsch/halbfertig VIELEN DANK mal Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Ehrenmitglied V.I.P. h.c. IT Admin (CAx)

 Beiträge: 8756 Registriert: 02.03.2000
|
erstellt am: 07. Jun. 2013 11:29 <-- editieren / zitieren --> Unities abgeben:          Nur für röhmler
Hallo röhmler, ich glaub ich steh auf dem Schlauch, wieso und was denn für ein ÖFFNEN Fenster? In deinem Code ist nichts von Datei öffnen zu sehen, da wird das aktuelle Dokument umformatiert und unter dem Namen 1233321.doc im aktuellen Arbeitsverzeichnis gespeichert. Vielleicht versuchst du noch mal zu erklären, wie deine aktuelle Arbeitssituation ist, was dein Ziel ist, was du schon hast und wie du versuchst das einzusetzen. Eben eine Beschreibung wie in Richtig Hilfe anfordern gezeigt wurde - Teil 1, Teil 2 und Teil 3. Zitat: Original erstellt von röhmler: Leider verstehe ich gar nichts von Makros - alles aufgezeichnet und die ersten Zeilen hat ein Bekannter gemacht.
Unabhängig vom oben geschriebenen: wenn du von Makros keine Ahnung hast, wieso willst du dann etwas mit Makros lösen? Klar ist es nett Dinge automatisieren zu können, da bin ich als Hobbyprogrammierer mit dir auf derselben Wellenlänge, aber um Makros zu erstellen oder zu evrstehen muss man sich schon ein wenig damit auseinander setzen - und das fängt schon bei einer eindeutigen Aufgabenstellung an. Welche anderen Programmiersprachen kennst du denn, fehlen dir die speziellen Word-Automationsmöglichkeiten, ist dir nur Syntax und Grammatik von VBA nicht geläufig oder hast du gar keine praktischen Erfahrungen mit Programmierung? Im letzten Fall mach eine genaue Beschreibung (siehe oben) und lass es dir von jemandem machen - aber gib demjenigen (z.B. einem Kollegen) auch einen Anreiz dafür, das zu tun. Aus reiner Herzensgüte oder Langeweile wird dir wohl niemand was spezielles für dich zaubern (lies dazu auch mal meine "Ausführungen" in diesem Beitrag, da sind ein paar Gedanken dazu zusammengefasst). Ciao, Stefan
------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
röhmler Mitglied Sachbearbeiter techn. Dokumentation
 
 Beiträge: 414 Registriert: 17.02.2004 AutoCAD Mechanical 2014
|
erstellt am: 07. Jun. 2013 11:53 <-- editieren / zitieren --> Unities abgeben:         
Ah ok, habs eben gesehn. Also, ich versuche es (Gedanken zu papier bringen ist oft schwierig) Mein Kollege erstellt aus dem SAP Stücklisten im Format .txt Diese legt er im Ordner (wie oben beschrieben) "halbfertig" (Ordner heisst so) ab. Dann Öffnet er diese Textdateien mit Word, Formatiert diese Dateien und speichert sie unter dem gleichen Namen im Wordformat (doc) ab! Diesen Vorgang hat er mit dem makrorekorder aufgezeichnet. Jetzt, wenn das Makro so nimmst öffnet es ja nur die Textdatei mit dem namen der aufgezeichnet wurde (jetzt gehts scho los mit Gedanken zu papier bringen grins) Da es mehrere txt Dateien mit unterschiedlichen Namen sind möchte er, das nach dem Makro Start das Fenster (Öffnen) aufgeht, wo man den Pfad und die Datei auswählen kann. Und hier sollte dann gleich der Ordner "halbfertig" erscheinen - er möchte sich halt nicht durch alle Ordner klicken - wenn 20 Txt-Files hast wirds viel. Hoffe ich konnte es verständlich rüber bringen. DANKE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
röhmler Mitglied Sachbearbeiter techn. Dokumentation
 
 Beiträge: 414 Registriert: 17.02.2004
|
erstellt am: 07. Jun. 2013 11:57 <-- editieren / zitieren --> Unities abgeben:         
Oh Mann, SOORRYYYYYYYYYYYYYYYYYYYYYYYYYYYY klar, da ist der beginn falsch. So sieht das makro Anfangs aus Dim oFileDialog As FileDialog Dim strPath As String Set oFileDialog = Application.FileDialog(msoFileDialogOpen) With oFileDialog .Title = "Bitte wählen Sie eine Datei aus" .InitialFileName = strStartPath & "\*.txt" .AllowMultiSelect = False If .Show = True Then Path = oFileDialog.SelectedItems(1) End If End With Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Ehrenmitglied V.I.P. h.c. IT Admin (CAx)

 Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 07. Jun. 2013 12:10 <-- editieren / zitieren --> Unities abgeben:          Nur für röhmler
Na, das ist einfach, da wärst du auch selbst drauf gekommen  Zitat: Original erstellt von röhmler: Dim oFileDialog As FileDialog Dim strPath As String Set oFileDialog = Application.FileDialog(msoFileDialogOpen) With oFileDialog .Title = "Bitte wählen Sie eine Datei aus" .InitialFileName = strStartPath & "\*.txt" .AllowMultiSelect = False If .Show = True Then Path = oFileDialog.SelectedItems(1) End If End With
Entweder du belegst dir vorher eine entsprechende Variable oder schreibst dein Startverzeichnis da hart rein: Code:
.InitialFileName = "C:\clientdaten\kob\kob.niewrzella\geschäftlich\deutsch/halbfertig\*.txt"
HTH, Stefan------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
röhmler Mitglied Sachbearbeiter techn. Dokumentation
 
 Beiträge: 414 Registriert: 17.02.2004
|
erstellt am: 07. Jun. 2013 12:14 <-- editieren / zitieren --> Unities abgeben:         
Supi, vielen Dank. Eins noch - wie sieht das ende aus, denn das ist ja auch falsch. Das Makro soll das aktive Dokument nun als .doc abspeichern. in dem Makro steht ja immer der gleiche Name drinnen. ActiveDocument.SaveAs FileName:="1233321.doc", FileFormat:= _ wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _ True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _ False, SaveNativePictureFormat:=False, SaveFormsData:=False, _ SaveAsAOCELetter:=False End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Ehrenmitglied V.I.P. h.c. IT Admin (CAx)

 Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 07. Jun. 2013 12:33 <-- editieren / zitieren --> Unities abgeben:          Nur für röhmler
|
röhmler Mitglied Sachbearbeiter techn. Dokumentation
 
 Beiträge: 414 Registriert: 17.02.2004
|
erstellt am: 10. Jun. 2013 07:43 <-- editieren / zitieren --> Unities abgeben:         
Hi, schönen guten Morgen. So kann ich den String doch nicht übernehmen oder? Sollte was in die Klammer die Du oben immer wieder stehen hast?? [...] Dann, was trage ich anstatt dem Dokumentennamen ein wenn der sich immer wieder ändert? VIELEN DANK Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Ehrenmitglied V.I.P. h.c. IT Admin (CAx)

 Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 10. Jun. 2013 08:01 <-- editieren / zitieren --> Unities abgeben:          Nur für röhmler
Hallo röhmler, nein, natürlich kannst du den String nicht so übernehmen, ich will und werde dir ja kein fertiges Makro machen, dafür gibst du mir zu wenig Anreize. Hast du dir meine Antwort und den Link mal durchgelesen? Also: das [...] ist ein gängiges Zeichen für hier wurden Teile des Zitats ausgelassen, die nicht zum Verständnis nötig waren, damit der Blick beim Leser gleich auf die relevanten Stellen fällt. Ich hab dir im Beitrag oben gezeigt, wo die Stelle ist, an der die Datei gespeichert wird und wo du den Namen eintragen kannst. Da der variable ist habe ich dir darunter eine einfache, flexible Möglichkeit mit der Funktion Inputbox gezeigt, mit der du einen Namen samt Pfad vom Benutzer abfragen kannst. Du musst es nur noch verstehen und einsetzen. Das einsetzen könnte ich dir abnehmen, siehe Links, dazu braucht es einen Anreiz. Das Verstehen kann ich dir nicht abnehmen, nur erleichtern, indem ich es mehrfach auf unterschiedliche Art erkläre. Allerdings habe ich den Eindruck, dass du entweder gar nicht am Verständnis sondern nur an einer fertigen Lösung interssiert bist, oder im Moment selbst diese Programmierungsversuch noch zu komplex sind. Ich habe verstanden, dass du dich mit Makros und deren Programmierung nicht auskennst, allerdings bin ich davon ausgegangen, dass du es lernen und verstehen willst. Wenn dem so ist wäre es besser, du fängst mal mit den einfachen Grundlagen an, wie z.B. einem VBA Onlinekurs. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
röhmler Mitglied Sachbearbeiter techn. Dokumentation
 
 Beiträge: 414 Registriert: 17.02.2004
|
erstellt am: 10. Jun. 2013 08:05 <-- editieren / zitieren --> Unities abgeben:         
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |