Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Speichern mit Makro

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Speichern mit Makro (2042 mal gelesen)
h-ruedi
Mitglied



Sehen Sie sich das Profil von h-ruedi an!   Senden Sie eine Private Message an h-ruedi  Schreiben Sie einen Gästebucheintrag für h-ruedi

Beiträge: 21
Registriert: 23.01.2005

erstellt am: 11. Aug. 2005 21:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo, Excel Spezialisten

Kann mir jemand weiterhelfen, ich möchte aus zwei Zelleninhalten einen Wert erhalten in einer dritten Zelle. Gibt es dafür eine Formel?
Damit nicht genug, ich möchte diesen Wert anschließend mit Hilfe eines Makros über Speichern unter als neue Datei abspeichern. Meine Versuche sind insofern gescheitert, dass ich den Zelleninhalt markieren musste, dann kopieren! (dies macht leider einen Absoluten Wert) um dann im Feld für Dateinamen mit Ctrl v den Wert einzufügen. Aber Leider Sieht das Makro dies als absoluten Wert und nicht als Variablen Wert an. Wie Löse ich dieses Problem?

Laufnr. Name         sollwert
050127 Hans Meier Hans Meier 050127

Range("C2").Select
ActiveCell.FormulaR1C1 = "Hans Meier 050127"
Range("C3").Select
ChDir "C:\Dokumente und Einstellungen\xx\Eigene Dateien\Excel"
  ActiveWorkbook.SaveAs Filename:= _
  "C:\Dokumente und Einstellungen\xx\Eigene Dateien\Excel\Hans Meier 050127.xls" _
  , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
  ReadOnlyRecommended:=False, CreateBackup:=False
End Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bernd P
Ehrenmitglied V.I.P. h.c.
cook-general



Sehen Sie sich das Profil von Bernd P an!   Senden Sie eine Private Message an Bernd P  Schreiben Sie einen Gästebucheintrag für Bernd P

Beiträge: 3358
Registriert: 07.06.2001

W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365

erstellt am: 12. Aug. 2005 09:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für h-ruedi 10 Unities + Antwort hilfreich

Servus

zwei Zelleninhalten einen Wert erhalten
Was für einen Wert +-*/ oder was "gröberes"?
Aber Leider Sieht das Makro dies als absoluten Wert und nicht als Variablen Wert an.
Er mach aus einer Formel einen Wert?
Sie dir die Möglichkeit "Inhalteeinfügen" dort gibts einen Punkt (rechts unten) Verküpfen.

------------------
"Warum Einfach es geht auch kompliziert". Schöne Grüsse aus der Steiermark  Bernd P.
Bitte Supportangaben eintragen, warum siehst du hier

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 12. Aug. 2005 12:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für h-ruedi 10 Unities + Antwort hilfreich

in C1 steht 50127
in C2 steht Hans Maier
in C3 willste das haben =VERKETTEN(B3;" ";A3)

und das makro:

Code:
Sub sichereals()
newfilename = Range("C3").Value 'wert aus c3 holen
ChDir "C:\Dokumente und Einstellungen\xx\Eigene Dateien\Excel"
  ActiveWorkbook.SaveCopyAs Filename:= _
  "C:\Dokumente und Einstellungen\xx\Eigene Dateien\Excel\" & newfilename & ".xls"
End Sub

[Diese Nachricht wurde von Thomas Harmening am 12. Aug. 2005 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

h-ruedi
Mitglied



Sehen Sie sich das Profil von h-ruedi an!   Senden Sie eine Private Message an h-ruedi  Schreiben Sie einen Gästebucheintrag für h-ruedi

Beiträge: 21
Registriert: 23.01.2005

erstellt am: 12. Aug. 2005 21:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Thomas

Funktioniert perfekt vielen Dank.
Eine Frage hätte ich jedoch noch, muss man dieses Makro schreiben oder ist es möglich mit dem Makro-Recorder auf dieses Ergebnis zu kommen.       
Wenn JA WIE? 
Wie ergeben sich die Befehle newfilename / .Value 'wert aus c3 holen / " & newfilename & ".xls"!

Gruss Ruedi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 13. Aug. 2005 02:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für h-ruedi 10 Unities + Antwort hilfreich

Hallo,

> muss man dieses Makro schreiben oder ist es möglich
> mit dem Makro-Recorder auf dieses Ergebnis zu kommen

Du kannst es natürlich abtippsen oder copypaste machen;-)
General ist es so, der Recorder zeichnet nix auf was mit zB ChangeDir [ChDir] oder MakeDir[MkDir] zu tun hat,
also du kannst in Excel mit dem Recorder nicht aufzeichnen, wenn du mal ein Verzeichniss wechselst oder ein neues erstellst.

Dasselbe gilt natürlich für variablen, geh' immer davon aus - der recorder ist 'doof' ;;-))
Naja, oder anders, der ist nicht doof - der kann nur in 'seinem' Rahmen agieren/aufzeichnen.

newfilename ist also in Thomas' Beispiel kein Befehl, sondern einfach eine Variablendeklaration,
die hat Thomas festgelegt - nicht der Recorder.
Dieser Variablen NewFileName weist er dann den Wert der Zelle 'C3' zu.
Schlag' dir aus dem Kopf Variablen aufzeichnen zu können,das geht ganz einfach nicht,
was gehen könnte, wenns nur immer C3 ist wäre ohne Variable:

Code:

ActiveWorkbook.SaveCopyAs Filename:= _
  "C:\Dokumente und Einstellungen\xx\Eigene Dateien\Excel\" & [c3].value & ".xls"


Aber 'aufzeichnen' kannst Du auch das IMHOIn my humble oppinion (Meiner Meinung nach) nicht, da sind dem Recorder einfach Grenzen gesetzt, wär ja sonst auch viel zu einfach & stinklangweilig;-)

Gruss Nancy         

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 13. Aug. 2005 13:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für h-ruedi 10 Unities + Antwort hilfreich

Jap, der Recorder zeichnet nur deine Aktionen auf und das auch nur im begrenzen Rahmen und mit viel 'beimüll'.
Somit ist das Ergebnis im Recorder immer nur statisch - es dann dymamisch (in deinem Falle, speichern unter dem Wert aus C3) zu machen liegt dann wieder in den Fingern des ProggerS.
Wobei ich oftmals dem Recorder benutze - im Ermangelung einer tieferen Kenntnis in VBA ;-)

;-) @Nancy, ohne recorder wäre es noch 'dööfer' ;-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

h-ruedi
Mitglied



Sehen Sie sich das Profil von h-ruedi an!   Senden Sie eine Private Message an h-ruedi  Schreiben Sie einen Gästebucheintrag für h-ruedi

Beiträge: 21
Registriert: 23.01.2005

erstellt am: 13. Aug. 2005 18:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Nancy & Thomas

Wenn ich das richtig verstanden habe, muss oder müsste ich mir Visual Basic aneignen um Flexibler und Umfangreicher Arbeiten zu können.

Gruss

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 14. Aug. 2005 01:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für h-ruedi 10 Unities + Antwort hilfreich

> Wenn ich das richtig verstanden habe, muss oder müsste ich mir Visual Basic aneignen ...

Jein - ganz so wild ist das ganze nun eigentlich auch nicht;-)

Wenns um 'Dynamik' geht, also wie in deinem Falle eben, reicht es zB die Verkettung der strings vberstanden zu haben und schon bastelt man sich fix einen eigenen String mit einer Variablen draus.

Also ich sage mal so, wenn man die gröbsten Grundlagen der Programmierung, damit meine ich vor allem die Variablendeklaration & -übergabe [wobei die Sprache eher sekundär ist], also wenn man das begriffen hat, ist's eigentlich relativ easy, sich den Recordercode aufzuzeichnen und danach mit eigenen Variablen anzupassen.

> ... um Flexibler und Umfangreicher Arbeiten zu können.

Das ist nun die Frage, wie definierst man flexibel und umfangreich;-)
Bei simplen Sachen, s.o. kommt man mit paar Grundkenntnissen schon relativ weit sich die eine oder andrere Sache fix anzupassen.

Wenns aber richtig flexibel und richtig umfangreich werden soll und noch viele andere Faktoren, wie Performance, Interaktivität mit anderen Programmen etc. eine Rolle spielen, denke ich kommt man nicht umhin sich tiefer mit der Sprache auseinanderzusetzen.

Für den 'Hausgebrauch' reicht es aber wiegesagt imho wenn man mal nur die paar Basics kennt, soo wilde isses nicht hier mal zB ein Tut-Link: http://www.ti5.tu-harburg.de/manual/vba5/httoc.htm

Naja und Foren gibbets ja auch noch;-)

@Thomas
hast recht, ich nutze den Recorder auch oft um mir einzelne/kurze Aktionen aufzuzeichnen, und mir dann die betreffende Zeile die ich wissen wollte rauszupicken. Hab ja auch nicht den Objektkatalog und sämtliche Methoden und deren Parameter im Kopf;-)

Aber mal völlig am Rande, ich finde zB die Hilfe/F1/Examples für Autocad/VBA um Längen besser beschrieben, als die von Excel/VBA, wobei halt Acad keinen Recorder hat - Excel aber schon.
Vermutlich haben sich die 'Office-Leute' gesagt, wir stellen euch das Werkzeug 'Recorder' zur Verfügung und halten uns dann in der Doku knapp. Und die welche keinen Recorder haben, schrieben aber eine recht gute Hilfe.

Naja - kommt ja aber unterm Strich - wie so oft - in etwa dasselbe raus, was dem einen seine Stärke ist des halt des anderen Schwäche;-)

Gruss Nancy   

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

h-ruedi
Mitglied



Sehen Sie sich das Profil von h-ruedi an!   Senden Sie eine Private Message an h-ruedi  Schreiben Sie einen Gästebucheintrag für h-ruedi

Beiträge: 21
Registriert: 23.01.2005

erstellt am: 16. Aug. 2005 21:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Thomas

Als ich heute dein Makro in Betrieb nehmen wollte, bemerkte einen kleinen Unterschied zu dem was ich erreichen möchte. (dieses Detail ist mir beim ersten Test nicht aufgefallen). Mein Grundgedanke ist, dass ich mich wie durch Speichern unter aus einer Grunddatei eine Datei erzeuge in welcher ich mich nach dem Speicher Makrovorgang noch befinde (also die Grunddatei verlasse) Ich nehme an dieser Teil (" & newfilename & ".xls") des Makros müsste umbenannt werden, aber durch welchen Befehl ??

Gruss

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 16. Aug. 2005 21:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für h-ruedi 10 Unities + Antwort hilfreich

Abend,

versuch mal ein 'saveas' statt des 'savecopyas'.
Ein SaveAs schliesst aber die aktuelle Datei, deswegen vorher nochmal speichern:

Code:

Sub sichereals()
  newfilename = Range("C3").Value 'wert aus c3 holen
  ChDir "C:\Dokumente und Einstellungen\xx\Eigene Dateien\Excel"
  with activeworkbook
    if not .saved then .save
    .saveas Filename:= "C:\Dokumente und Einstellungen\xx\Eigene Dateien\Excel\" & newfilename & ".xls"
  end with
End Sub

HTHHope this helps (Hoffe, es hilft weiter) Nancy  

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

h-ruedi
Mitglied



Sehen Sie sich das Profil von h-ruedi an!   Senden Sie eine Private Message an h-ruedi  Schreiben Sie einen Gästebucheintrag für h-ruedi

Beiträge: 21
Registriert: 23.01.2005

erstellt am: 25. Aug. 2005 20:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Salü Nancy 

Sorry das du auf mein Dankeschön so lange warten musstest. Aber bei uns hat es im Moment soviel Wasser und Berge die finden, dass sie nun genug Zeit am gleichen Fleck verbrachten. Leider vergessen sie bei Ihrem Wegzug, dass sie unsere Häuser Platt machen. Dies löst ziemlichen Stress aus. Zurück zum Makro, so wie unten Funktioniert es wie ich es brauche.

Sub sichereals()
  newfilename = Range("C3").Value 'wert aus c3 holen
  ChDir "C:\Dokumente und Einstellungen\xx\Eigene Dateien\Excel"
  with activeworkbook

      .saveas Filename:= "C:\Dokumente und Einstellungen\xx\Eigene Dateien\Excel\" & newfilename & ".xls"
  end with
End Sub

Gruss auf ein andermal

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz