Guten Tag,
ich möchte folgends veranlassen:
range(„a1:a10“).select
selection: save as …
geht das und wenn nicht, wie kann ichs sonst machen?
gruß Nikodemo
Guten Tag,
ich möchte folgends veranlassen:
range(„a1:a10“).select
selection: save as …
geht das und wenn nicht, wie kann ichs sonst machen?
gruß Nikodemo
Grüezi NikoDemo
ich möchte folgends veranlassen:
range(„a1:a10“).select
selection: save as …geht das und wenn nicht, wie kann ichs sonst machen?
Was genau willst Du damit machen?
Welches Ergebnis erwartest Du nach einem solchen Vorgang?
Einen Bereich kann man nicht speichern - allenfalls eine Mappe.
Du kannst also eine neue Mappe erstellen, die Daten dorthin einfügen und diese Mappe dann speichern.
Mit freundlichen Grüssen
Thomas Ramel
hi, Thomas,
„save“ (engl.) = „retten, hier: speichern“
Ich möchte diesen angegebenen Bereich als *.doc, *.xls, *.txt oder *.csv in ein jeweiliges Dokument abspeichern. In meinem Fall als *.doc
Ich habe in Excel eine Adressdatei angelegt, die ich als Referenzdatei für Serienbriefe in Word brauche.
Das ist alles, was ich möchte.
Es grüßt dich
Nikoemo
Grüezi NikoDemo
„save“ (engl.) = „retten, hier: speichern“
Ich möchte diesen angegebenen Bereich als *.doc, *.xls, *.txt
oder *.csv in ein jeweiliges Dokument abspeichern. In meinem
Fall als *.doc
Hmmmm, einen Range aus Excel willst Du als .doc speichern?
Das ist ‚einfach mal so‘ nicht möglich.
Ich habe in Excel eine Adressdatei angelegt, die ich als
Referenzdatei für Serienbriefe in Word brauche.Das ist alles, was ich möchte.
Hmmm, aber das hast Du mit der Excel-Datei doch schon?!
Du kannst diese als Quelle für den Sereinbrief verwenden und die Daten dann direkt dort rausholen.
Ein Zwischenspeichern (gar als Word .doc) ist meines Erachtens nicht notwendig und verkompliziert die Sache nur unnötig.
Mit freundlichen Grüssen
Thomas Ramel
Grüß dich Thomas!
Ich hab mich jetzt mal in diese Thema verbissen, ich wills jetzt einfach mal so machen (…mit den Füßen stampf…)
Hab schon versucht, diese „Range“ in eine neue Mappe zu „saven“, geht aber wirklich nicht so einfach. Deshalb meine Fragen an die Experten.
Es fehlt halt noch ein bisschen, bis ich ein perfekter VBA 'ler bin.
viele Grüße aus dem Wohnzimmer.
Nikodemo
Hmmmm, einen Range aus Excel willst Du als .doc speichern?
Das ist ‚einfach mal so‘ nicht möglich.
Grüezi Thomas,
ich muß dir da leider widersprechen, das ist sehr einfach. Word wandelt das in eine Tabelle um bzw. übernimmt die Tabellenstruktur von Excel.
Ob man nun diese Word-tabelle direkt als Datenquelle für einen Serienbrief nehmen kann weiß ich nicht. Ggfs halt kurz mit einem Word-Makro die Word-Tabelle in ein temporäres Excelblatt schicken für den Seriendruck.
Gruß
Reinhard
Grüezi Nikodemo
Ich hab mich jetzt mal in diese Thema verbissen, ich wills
jetzt einfach mal so machen (…mit den Füßen stampf…)
Sorry, aber einfach Starrköpfigkeit wird dich kaum viel weiter bringen.
Du hast leider nicht wirklich meine Fragen beantwortet; wie stellst Du dir vor, dass wir dich dann wirkungsvoll unterstützen können?
Hab schon versucht, diese „Range“ in eine neue Mappe zu
„saven“, geht aber wirklich nicht so einfach. Deshalb meine
Fragen an die Experten.
Ich gehe daher also mal als Annahme davon aus, dass Du die Markierten Zellen in eine neue Mappe überführen und speichern willst.
Überlege dir, wie Du dabei ‚von hand zu Fuss‘, also ganz ohne VBA, vorgehen würdest.
Starte dann den makro-Recorder und führe exakt diese Schritte aus. Damit bekommst Du ein Raster, das Du dann verwenden und noch ein wenig anpassen kannst/musst.
(Auf diese Weise steigt übrigens auch dein Verständns für VBA relativ schnell, weil der Recorder dir für die gemachten Schritte alle Objekte, Mathoden und Eigenschaften in der korrekten Syntax ausgibt - Du braucht den Code dann bloss noch von den .Select und .Activate zu befreien).
Also - der aufgezeichnete Code könnte dann wie folgt aussehen:
Sub Makro1()
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Tabelle1").Select
Range("A1:E3").Select
Selection.Copy
Sheets("Tabelle2").Select
ActiveSheet.Paste
Sheets("Tabelle2").Select
Application.CutCopyMode = False
Sheets("Tabelle2").Move
ActiveWorkbook.SaveAs Filename:="O:\EXCEL\Meine\_Daten.xls", FileFormat:= \_
xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False \_
, CreateBackup:=False
End Sub
Das kannst Du dann z.B. wie folgt umarbeiten, wobei der Dateiname hier noch immer fix ist - aber so hast Du jedenfalls mal eine .xls-Datei mit nur den zuvor markierten Zellen drin.
Sub Makro1()
Dim rngMarkierung As Range
Set rngMarkierung = Selection
Worksheets.Add
rngMarkierung.Copy ActiveSheet.Range("A1")
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:="O:\EXCEL\Meine\_Daten.xls"
End Sub
Das ist ein möglicher Weg um die Werte in eine .xls zu speichern, die Du dann ohne weiteres als Datenquelle für deinen Serienbrief verwenden kannst.
Wenn Du das Ganze dann als .doc speichern willst, dann versuche dies ebenfalls mit dem Makro-Recorder, wobei der dann vermutlich die Word-Objekte nicht mit aufzeichne wird. Das ist dann quasi eine Fernseteuerung von Word, was noch in einer ganz anderen Liga spielt.
Mit freundlichen Grüssen
Thomas Ramel
Grüezi Reinhard
Hmmmm, einen Range aus Excel willst Du als .doc speichern?
Das ist ‚einfach mal so‘ nicht möglich.
ich muß dir da leider widersprechen, das ist sehr einfach.
Word wandelt das in eine Tabelle um bzw. übernimmt die
Tabellenstruktur von Excel.
…aber soch wohl kaum mit einem markierten Range und einem einfachen ‚SaveAs‘ - das wäre mir dann schon sehr neu…?
Ob man nun diese Word-tabelle direkt als Datenquelle für einen
Serienbrief nehmen kann weiß ich nicht. Ggfs halt kurz mit
einem Word-Makro die Word-Tabelle in ein temporäres Excelblatt
schicken für den Seriendruck.
Eine Word-Tabelle kann sehr wohl als Quelle für den Seriendruck herhalten - wenn aber alles in Excel schön sauber in Tabellenform vorhanden ist, macht das keinen Sinn.
Und wie Du schreibst braucht es dann anschliessend ein Word-Makro, meines Erachtens nämlich auch zurm Speichern der Werte in einem Word-Doc.
Das ist dann aber eine ganz andere Liga, die ich hier nicht wiklich ins Spiel bringen wollte.
Daher meine Aussage, dass das ‚einfach mal so‘ nicht machbar ist.
Doch wenn sich NikoDemo darin verbeissen will habe ich versucht ein paar Hinweise in dieser Richtung zugeben.
Mit freundlichen Grüssen
Thomas Ramel
OT Excel Range nach Word
Grüezi Thomas,
ich muß dir da leider widersprechen, das ist sehr einfach.
Word wandelt das in eine Tabelle um bzw. übernimmt die
Tabellenstruktur von Excel.…aber soch wohl kaum mit einem markierten Range und einem
einfachen ‚SaveAs‘ - das wäre mir dann schon sehr neu…?
mir auch, ich dachte da an Strg+c und Strg+v
Eine Word-Tabelle kann sehr wohl als Quelle für den
Seriendruck herhalten
Aha, danke für die Info, dann brauche ich das nicht zu testen ob das geht.
Doch wenn sich NikoDemo darin verbeissen will habe ich
versucht ein paar Hinweise in dieser Richtung zugeben.
Weiterhin viel Spass dabei *gg*
Gruß
Reinhard
Grüezi Reinhard
ich muß dir da leider widersprechen, das ist sehr einfach.
Word wandelt das in eine Tabelle um bzw. übernimmt die
Tabellenstruktur von Excel.…aber soch wohl kaum mit einem markierten Range und einem
einfachen ‚SaveAs‘ - das wäre mir dann schon sehr neu…?mir auch, ich dachte da an Strg+c und Strg+v
Ja, das hatte ich mir schon fast gedacht, dass Du das gedacht hast
Aber da wir im Visual-Basic Brett sind habe ich auch gedacht, dass NikoDemo sich das rein nur mit VBA gedacht hat.
Doch wenn sich NikoDemo darin verbeissen will habe ich
versucht ein paar Hinweise in dieser Richtung zugeben.Weiterhin viel Spass dabei *gg*
Aber klar doch…
Mit freundlichen Grüssen
Thomas Ramel
Dear Thomas,
recht herzlichen Dank für denen umfangreichen Tipp.
Ich werde mich heute Abend noch daran machen, in auszutesten.
Willst du einen Bericht darüber, wie es mir damit ging?
bis dann
Nikodemo
Grüezi NikoDemo
recht herzlichen Dank für denen umfangreichen Tipp.
Ich werde mich heute Abend noch daran machen, in auszutesten.
Willst du einen Bericht darüber, wie es mir damit ging?
Ja, Feedback ist immer fein - bis dann also
Mit freundlichen Grüssen
Thomas Ramel
Servus, Thomas!
Habe den Code eingesetzt unhd ausprobiert. Funktioniert prima.
Es tut jetzt genau (fast) das, was ich möchte.
Nur lande ich nach der Aktion auf eben dieser Tabelle und kann deshalb die Ursprungsdaten nicht mehr bearbeiten.
Ich habe nun den Code folgendermassen erweitert:
Private Sub CommandButton8_Click()
Dim rngMarkierung As Range
Range(„j7:n1000“).Select
Set rngMarkierung = Selection
Worksheets.Add
rngMarkierung.Copy ActiveSheet.Range(„a1:e1000“)
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=„c:\DailyOpera\Adressen1.xls“
Workbooks.Open Filename:=„c:\dailyOpera\KsDateien\Kontakte\kskontakt.0909.xls“
Sheets(„Kontakte“).Select
End Sub
ich habe alle schlauen Bücher durchforstet, aber keinen hinweis auf „Workbook“ erhalten. Es ist ja schon ein Problem mit der billigen Literatur.
Der Rücksprung funktioniert noch nicht. Aber das werd ich auch noch hinbekommen. Es ist eben ein Unterschied, ob man jahrelange Erfahrung in VBA hat (wie du) oder ob man gerade die letzten Krümmel der Eierschale abgeworfen hat.
Trotzdem bedanke ich mich bei dir.
Bis irgendwann wieder
NikoDemo
Grüezi NikoDemo
Habe den Code eingesetzt unhd ausprobiert. Funktioniert prima.
Fein, das war auch die Absicht dahinter
Nur lande ich nach der Aktion auf eben dieser Tabelle und kann
deshalb die Ursprungsdaten nicht mehr bearbeiten.
Ein einfachers ALT+TAB bringt dich nicht wieder zurück?
Ich habe nun den Code folgendermassen erweitert:
Private Sub CommandButton8_Click()
Dim rngMarkierung As Range
Range(„j7:n1000“).Select
Autsch!
Warum denn hier wieder die Selection?
Set rngMarkierung = Selection
Worksheets.Add
rngMarkierung.Copy ActiveSheet.Range(„a1:e1000“)
ActiveSheet.Copy
ActiveWorkbook.SaveAs
Filename:=„c:\DailyOpera\Adressen1.xls“
Workbooks.Open
Filename:=„c:\dailyOpera\KsDateien\Kontakte\kskontakt.0909.xls“
Und wieso öffnest Du hier eine andere Mappe?
Sheets(„Kontakte“).Select
End Sub
- Geht aber nicht.
Das kann ich nicht wirklick beurteilen - irgendwas wird da schon gehen, aber Du sagst leider nur was nicht geht, ohne näher darauf einzugehen was genau Du denn haben möchtest.
Wenn es nur darum geht die soeben erzeugte und gespeicherte Mappe zu schliessen, dann füge einfach den ‚Schliessen‘-Befehl zum bestehenden Code hinzu (und lass die .Selection doch auch gleich weg!):
Private Sub CommandButton8\_Click()
Dim rngMarkierung As Range
Set rngMarkierung = Range("j7:n1000")
Worksheets.Add
rngMarkierung.Copy ActiveSheet.Range("a1:e1000")
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:="c:\DailyOpera\Adressen1.xls"
ActiveWorkbook.Close
End Sub
Damit solltest Du dann eigentlich wieder auf der zuvor aktiven Mappe zurück sein.
–
Mit freundlichen Grüssen
Thomas Ramel
Guten Morgen Thomas,
das mit dem „select“ hab ich gemacht, weil ichs noch nicht besser kann. Es funktioniert aber auch so.
Trotzdem: hab wieder einiges dazugelernt.
Vielen Dank jedenfalls für deine Tipps. Sie waren sehr hilfreich für mich.
es grüßt dich
Nikodemo