| |  | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Automatische Befehle ausführen in Excel (2222 mal gelesen)
|
ExiLi Mitglied

 Beiträge: 14 Registriert: 29.04.2007
|
erstellt am: 29. Apr. 2007 15:46 <-- editieren / zitieren --> Unities abgeben:         
Hallo Community, Zuerst wollte ich sagen, dass das hier echt ein tolles Forum ist und ich mich jetzt hier öfter tummeln werde. Zu helfen werde ich natürlich auch versuchen. Jetzt zu meinem Problem, bei dem ich hoffe, ihr mir behilflich sein könnt: Ich muss momentan arbeitsbedingt mit Excel Tabellen arbeiten. Grob gesagt geht es darum, verschiedene Kundenwünsche einzugeben und sie dann abzuspeichern. Das ganze geschieht momentan bei mir so: - Ich trage das Produkt mit dem Listenpreis in die Tabelle ein und speichere diese dann als Excel Datei unter dem Pfad X:/Handelsplattform/Produktname/Produktname.xls - So dann trage ich den Namen des Interessenten mit rein und speichere das ganze unter X:/Angebot/Monat/Name des Kunden/Name des Kunden+Produktname.xls - So dann gehe ich auf Drucken "PDF Destieler" und speichere es als PDF-Datei ab unter X:/Angebot/Monat/Name des Kunden/Name des Kunden+Produktname. pdf Diese PDF schicke ich dann dem Kunden mit dem Angebot wieder zurück. --------------------------------------- Und jetzt kommt genau das was ich mir sozusagen vorstelle: Ich gebe den Produktname und den Namen des Kunden in die Tabelle ein. Dann klicke ich einfach auf "GO" und alle Schritte die ich oben genannt habe, werden automatisch gemacht, sprich nur die Datei mit dem Produktname wird gespeichert, dann die Datei mit Produktname und Kundenname und dann wird auch automatisch eine PDF Datei erstellt. Wie kann ich das realisieren`? Ich muss dazusagen, ich habe eher wenige Kenntnisse was Excel oder Programmierung angeht, würde mich aber sehr gerne reinarbeiten. Ich wäre euch sehr Dankbar wenn ihr mir Lösungsansätze vorschlagen könnt und ggf. vielleicht eine Muster Lösung. Für genaue Erklärungen wäre ich auch sehr dankbar. Danke euch schon mal im Voraus. mfG ExiLi ------------------ mfG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
      

 Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 29. Apr. 2007 17:00 <-- editieren / zitieren --> Unities abgeben:          Nur für ExiLi
Hallo, ich würde mir zuersteinmal mit dem Makrorecorder mir das Ganze aufzeichen und es anschliessend abändern ;-) so als grobes Code: Sub Speichenals() Kunde = Range("A1") 'zelle mit dem Namen des Kunden Produktname = Range("A2") 'zelle mit dem Produktname If Len(Kunde) And Len(Produktname) = 0 Then MsgBox ("Ungültiger Dateiname: Die angegebenen Zellen dürfen nicht leer sein!") Else 'sichern unter neuem namen ActiveWorkbook.SaveAs Filename:="c:/Angebot/Monat/" & Kunde & "/" & Kunde & " " & Produktname & ".xls" 'hier die speicherung als Pdf End If End Sub
da ich keinen Destiller habe -steht oben nur eine Bemerkung ein Button auf dem Excelsheet erstellenn und dem das Makro zuweisenEine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
   
 Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 30. Apr. 2007 12:29 <-- editieren / zitieren --> Unities abgeben:          Nur für ExiLi
Hallo ExiLi und willkommen auf CAD.de! Was Du suchst, zeigt Thomas bereits sehr gut auf. Ich nehme mal Bezug auf das hier: Zitat: Wie kann ich das realisieren`? Ich muss dazusagen, ich habe eher wenige Kenntnisse was Excel oder Programmierung angeht, würde mich aber sehr gerne reinarbeiten.
Mit Excel-Bordmitteln, also ohne Programmierung, kommst Du hier nicht weit - 'ran an VBA! Also, mal ganz langsam: -Excel öffnen -rechte Maustaste in den Menüleistenbereich - VBA-Symbolleiste anzeigen, siehe vbLeiste.jpg. -Klick mal auf den "Record"-Button und mache Deine Schritte -einen nach dem anderen, der Makro-Recorder zeichnet exakt jeden Befehl (und manchmal leider noch ein bißchen mehr) auf, den Du ausführst. Mein Vorschlag: Entweder vorher üben oder auf 'nem Schmierzettel Stichpunkte machen. Wenn das pdf erzeugt ist, drückst Du auf "Stop" - das ist der blaue, eckige Button, der erst nach Aufzeichnungsbeginn erscheint. Nun hast Du Dein erstes Makro im Kasten. Drücke Alt+F11, der VBA-Editor erscheint. Das ist die Entwicklungsumgebung. Links sollte "Modul1" im Explorerfenter zu sehen sein. Falls nicht, drückste mal Strg+r, dann taucht der Explorer auch auf. Schau Dich erstmal um... Thomas' Code kopierst Du Dir einfach unten dran. Mit F8 kannst Du Dein Makro im Einzelschritt testen und sehen, was die Befehle jeweils ausführen. Ich denke, das reicht erstmal für den Einstieg?! Ansonsten gilt: Fragen, fragen, fragen ;-) ------------------ Gruß, Frederik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ExiLi Mitglied

 Beiträge: 14 Registriert: 29.04.2007
|
erstellt am: 01. Mai. 2007 22:50 <-- editieren / zitieren --> Unities abgeben:         
Ich danke euch für die Hilfe und werde mich in der nächsten Zeit mal rauf machen und das ganze verinnerlichen Momentan noch viel zu tun und ich komme einfach nicht dazu. Hab nur Anhand des Makrorecorder ein ersten Versuch gemacht und leider feststellen müssen, dass wie Paulchen gesagt hat das Teil viel zu viel aufzeichnet. Aber dazu später mehr. Ich habe eine neue Frage an euch, die nicht so Umfangreich sein dürfte: Ich brauche einen Art "Auswahlbutton" das heißt man klickt drauf und es kommt wie zum Beispiel bei der Auswahl von Schriften eine Auswahl. Da sollten zum Beispiel die Produktnamen stehen und dieses sollten aber Prozenten entsprechen. Also ich wähle Produktname "xyz 12%" aus und die anderen Zellen, die auf diese zugreifen sehen nur die 12% und rechnen auf damit. Wie krieg ich das hin? Ich meine bei Delphi war das ganze ziemlich einfach, da war das Objekt "Auswahlbutton" schon vorgegeben. Ich danke euch schon mal im Voraus. mfG Ex!Li
------------------ mfG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
   
 Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 01. Mai. 2007 22:57 <-- editieren / zitieren --> Unities abgeben:          Nur für ExiLi
Guten Abend, lass Dir einfach mal die Symbolleisten Formular und/oder Steuerelement-Toolbox (für VBA) anzeigen und experimentiere ein wenig . Dann hilft die Hilfe von Excel und die Suchfunktion hier im Forum - z.B. nach Button... Gute Nacht! ------------------ Gruß, Frederik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ExiLi Mitglied

 Beiträge: 14 Registriert: 29.04.2007
|
erstellt am: 01. Mai. 2007 23:49 <-- editieren / zitieren --> Unities abgeben:         
Hallo Leute, das ging ja heute schnell  Also ich habe es fast geschafft, habe über "Daten, Gültigkeit, Liste" es geschafft genau das hinzubekommen. Aber jetzt komm ich mit einigen Sachen trotzdem nicht ganz klar: Ich will dass die Liste, also die Quelle aus einem anderen Tabellenblatt genommen wird. Ich arbeite also in Tabellenblatt "a" und will das die Liste aus Tabellenblatt "e" übernommen wird. Dazu habe ich einfach die Einträge markiert und ihnen über "Einfügen, Namen, Definieren" einen Namen gegeben "Liste1". So jetzt habe ich wie oben schon geschrieben einfach die Quelle "Liste1" eingegeben, aber das klappt nicht. So jetzt mein 2tes Problem: Ich will das man bei der Auswahl Produktname und die Prozentzahl sieht z.B.: "xyz 12%" wenn ich aber ein Produkt auswähle, soll dann der Wert 12% - 5% = 7% stehen. Alle Zellen die dann auf diese Zellen zugreifen sollen mit den 7% rechnen. Es gefällt mir immer mehr da so einzusteigen  Danke euch schon mal im Voraus!!! Mit freundlichen Grüßen Ex!Li
------------------ mfG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ExiLi Mitglied

 Beiträge: 14 Registriert: 29.04.2007
|
erstellt am: 02. Mai. 2007 00:05 <-- editieren / zitieren --> Unities abgeben:         
Hallo Paulchen ich finde deine Lösung viel eleganter,einfach super Tipp!!Habe mit der Schaltfläche Kombinationsfeld diese Art von Button erstellt. Jetzt kann ich aber wie oben schon beschrieben meine Ziele nicht erreichen. Würde mich sehr freuen, wenn mir jemand ein kleinen Tipp geben kann, wie ich es dennoch hinkriege. mfG Ex!Li
------------------ mfG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
   
 Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 02. Mai. 2007 09:43 <-- editieren / zitieren --> Unities abgeben:          Nur für ExiLi
Hallo Du Nachtschwärmer, zur Sache mit der Gültigkeit - falls die noch interessant ist? ... Du bist auf der richtigen Spur. Versuch es mal in der entsprechenden Zelle mit =INDIREKT("Tabelle123!A1:A5") bei Liste - Bereich mußt Du halt anpassen. Mit Namen kannst Du natürlich auch 'rumspielen - indirekt hilft jedenfalls! Was ist mit =INDIREKT("Liste1")? Zu 2 - Grundlagen? Ich versuch's mal... Zelle A1: 5 Zelle A2: 7 Zelle A3: =A1+A2 (sollte dann 12 erscheinen; Strg+1 - Zahlen - Prozent?!) Du darfst keinen Text mit Zahlen mischen, da kann xls nicht mit rechnen! NUR Zahlen - schon klappt's. Der Rest ist eine Frage der Anzeige - es ist nicht immer alles so, wie es aussieht. Zelle A4: =A3-2 oder aber auch =A1+A2-2 oder... ------------------ Gruß, Frederik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ExiLi Mitglied

 Beiträge: 14 Registriert: 29.04.2007
|
erstellt am: 02. Mai. 2007 14:41 <-- editieren / zitieren --> Unities abgeben:         
Hallo Paulchen danke noch mal für die Hilfe, aber ich komme einfach nicht weiter. Ich habe das jetzt mit dem Kombinationsfeld von Visual Basic gemacht, da kann ich nämlich die Zelle wählen, die das Ergebnis anzeigt. Was ich eigentlich machen will und ich etwas unverständlich erklärt habe, ist dem Produktnamen einen Wert zuweisen. Das heißt der Produktname ist "xyz 20%" der Wert aber einfach nur 20%. Das heißt also, dass wenn ich in meiner Liste den Namen "zzz 12%" auswähle, in der Ausgabezelle nur 12% steht und mit diesem Wert woll excel auch rechnen. Ich habe das wie du gesagt hast mit dem Befehl =INDIREKT versucht, aber irgendwie habe ich das nicht auf die Reihe gekriegt, denn irgendwie ist mir schleierhaft wohin ich diesen Befehl überhaupt eingeben soll. Wenn ich ihn in die Zelle mit dem Namen eingebe, dann verschwindet der Name, wenn ich ihn jedoch in die Zelle des Wertes eintippe verschwindet der Wert und den Bezug krieg ich auch nicht hin. Wäre dir wirklich sehr dankbar, wenn du mir das noch erläutern würdest. Übrigens habe ich vor mir ein Excel-Buch zu kaufen, so um die 20¤ sollte es kosten. Gibt es irgendwelche Empfehlungen? Danke schon mal im Voraus. mfG Ex!Li ------------------ mfG
[Diese Nachricht wurde von ExiLi am 02. Mai. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
   
 Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 02. Mai. 2007 15:45 <-- editieren / zitieren --> Unities abgeben:          Nur für ExiLi
 Nur nicht aufgeben! Buchtip Zu empfehlen sind außerdem die Excel-Hilfen zu -Benutzerdefiniertes Zellenformat, also z.B. "xyz " 0.00" %" -LINKS -RECHTS -TEIL Oder Du schreibst in zwei Spalten: z.B. in A xyz, rechtsbündig, in Spalte B den Wert, linksbündig - wenn's um die Optik gehen soll? Oder schreibst in eine Hilsspalte/-zeile und blendest diese dann aus? Außerdem empfehle ich wärmstens den Artikel zum Anhängen von Dateien - eine Mappe sagt oft mehr als tausend Worte! Einfach die Mappe.xls umbenennen in Mappe.xls.txt, und her damit - vorher natürlich sensible Daten 'rausnehmen . ------------------ Gruß, Frederik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
      

 Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 02. Mai. 2007 16:12 <-- editieren / zitieren --> Unities abgeben:          Nur für ExiLi
Zitat: Das heißt der Produktname ist "xyz 20%" der Wert aber einfach nur 20%.
hmm, - sollen xvy und xx% dynamisch sein ? ->Hilfsspalten sind möglicherweise eine Lösung - ist dein erstes Problem (speichern) gelöst? BTW ...immer einen Schritt nach dem anderen  ... und bei Bedarf einen neuen Thread aufmachen - ist sinnvoller bei der Recherche nachher ;-) @Paulchen , eine Mappe sagt oft mehr als tausend Worte! ;-) Sicher, immer? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
       

 Beiträge: 8086 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 02. Mai. 2007 21:30 <-- editieren / zitieren --> Unities abgeben:          Nur für ExiLi
N'Abend zusammen, So eine Liste hat übrigens mehr als eine Spalte ;-) [rredit:] Kombinationsfelder auch ;-) [/rredit] Stichwörter: ListFillRange ; ColumnCount ; BoundColumn ; LinkedCell ListFillRange: beim Namen vergeben darauf achten, daß da steht: bezieht sich auf =Tabelle1!$A$1:$B$10, dann sollte das auch blattübergreifend gehen. Muß eigentlich MultiSelect möglich sein? Fällt mir ohne VBA nix zu ein... BTW wer die Daten Produktname 42% so in einer Zelle stehen hat, der hat es irgendwie verdient, sich erstmal mit dem Splitten dieser Daten auseinandersetzen zu müssen ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ExiLi Mitglied

 Beiträge: 14 Registriert: 29.04.2007
|
erstellt am: 02. Mai. 2007 22:15 <-- editieren / zitieren --> Unities abgeben:         
Hallo Leute, werde hier ja überschüttet mit Antworten  Doch leider fallen mir eure Tipps sehr schwer, hab heute ein Kombibutton erstellt und es endlich geschafft auch Blattübergreifend zu realisieren. Habe dazu die Liste mit "Einfügen, Name, Definieren" erst einmal benannt. Dann konnte ich bei ListFillRange einfach nur "liste1" eingeben und es hat geklappt. Aber ich schaffe es einfach nicht, den ganzen ein Wert zuzuordnen. Hab jetzt mal die Datei in den Anhang kopiert wie Paulchen es mir erklärt hat. @ Thomas, das Problem mit dem speichern ist noch nicht gelöst, doch merke ich dass ich mich da tief ins VBA reinwage, also will ich mich erstmal ein wenig mit den Grundfunktionen bekannt machen, damit es mir leichter fällt. @runkelruebe, "Produkname 12%" dabei sollen die 12% nicht als Zahlenwert dienen sondern nur als Name. Das ist einfach zur besseren Orientierung so und zur schnellen Kontrolle. Kann auch einfach nur "Produktname" sein, doch der Wert der sich dahinter versteckt soll eben ein Zahlenwert sein wie "12%". Danke euch allen für die Hilfe. mfG Ex!Li ------------------ mfG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
      

 Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 03. Mai. 2007 06:27 <-- editieren / zitieren --> Unities abgeben:          Nur für ExiLi
Guten Morgen, Warum man nicht mitten im Thread ein Themenwechsel machen sollte, weil man bei einem Themenwechsel den =Wechsel(Beitrag;altes Thema;neues Thema) nie wieder findet eventuell wäre auch der Thread Drop-Down mit Werten aus anderem Blatt ins Auge gesprungen ;-) habe mal mit 'Grundfunktionen' dein Blatt erweitert -Combobox zähle ich jetzt mal nicht zu den Grundfunktionen - das tendiert, für mich, doch in Richtung VBa. HTH thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
       

 Beiträge: 8086 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 03. Mai. 2007 07:46 <-- editieren / zitieren --> Unities abgeben:          Nur für ExiLi
Guten Morgen, schön, daß da endlich ne Mappe kam :-) Ernsthaft, nimm einfach eine 3-Spaltige Box, als ListFillRange kannste Thomas' MuP nehmen, setz die BoundColumn auf 3 und ganz fix hast Du das, was Du brauchst. Find ich jetzt einfacher, als 'nen Sverweis und Indirekt... ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ExiLi Mitglied

 Beiträge: 14 Registriert: 29.04.2007
|
erstellt am: 04. Mai. 2007 00:18 <-- editieren / zitieren --> Unities abgeben:         
Hallo Leute, Ich bin echt happy, hab’s heute endlich so hingekriegt wie ich es haben wollte, mit dem Auswahlbutton!!! Ich habe es so wie Thomas gemacht, VIELEN DANK!! @ Runkelrübe, habe es dank Thomas schon geschafft, und möchte jetzt keine Niederlage erfahren  Danke erstmal an euch alle die mir hier geholfen haben! Ich werde für meine nächste Frage einen neuen Thread aufmachen und hier nur noch versuchen das speichern in den Griff zu kriegen. Mit freundlichen Grüßen Ex!Li ------------------ mfG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |