Autor
|
Thema: Makro: Mehrere Excel-Dateien ändern (890 mal gelesen)
|
janemu Mitglied
Beiträge: 8 Registriert: 05.10.2016 Text
|
erstellt am: 05. Okt. 2016 07:56 <-- editieren / zitieren --> Unities abgeben:
Hallo ihr Lieben, ich benötige ein Makro, welches alle Dateien nach einander in meinem Ordner öffnen bearbeitet, speichert und wieder schließt. Es muss nur eine Zelle umgeändert werden in jeder Datei: Arbeitsmappe "Kunde" Zelle "L2" Es soll von 2016 in 2017 umgeändert werden. Am besten über einen Button Ich danke euch [Diese Nachricht wurde von janemu am 05. Okt. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 05. Okt. 2016 07:58 <-- editieren / zitieren --> Unities abgeben: Nur für janemu
|
janemu Mitglied
Beiträge: 8 Registriert: 05.10.2016 Text
|
erstellt am: 05. Okt. 2016 07:59 <-- editieren / zitieren --> Unities abgeben:
|
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 05. Okt. 2016 08:24 <-- editieren / zitieren --> Unities abgeben: Nur für janemu
|
janemu Mitglied
Beiträge: 8 Registriert: 05.10.2016 Text
|
erstellt am: 05. Okt. 2016 08:26 <-- editieren / zitieren --> Unities abgeben:
|
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 05. Okt. 2016 08:27 <-- editieren / zitieren --> Unities abgeben: Nur für janemu
Hallo und willkommen im Forum, Darf man fragen um wieviele Dateien es sich handelt? Bei < 15 würde ich da gar nicht erst anfangen und das händisch machen. Dann noch ein Hinweis zum Syntax : Arbeitsmappe = Excel-Datei Du möchtest vermutlich in dem Tabellenblatt "Kunde" die Zeile geändert haben Schon mal mit Makros gearbeitet? Man kann diese auch aufzeichnen lassen und hat für solche Anliegen schon eine recht brauchbare Vorlage Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
janemu Mitglied
Beiträge: 8 Registriert: 05.10.2016 Text
|
erstellt am: 05. Okt. 2016 08:32 <-- editieren / zitieren --> Unities abgeben:
Hallo und Dankeschön, ich habe noch nie wirklich mit Makros gearbeitet. Ich schaue immer im Internet suche mir was raus und versuche es irgendwie anzupassen. Nur leider bekomme ich dieses mal nicht hin. Es handelt sich um ca. 1000 Dateien... Diese sind alle gleich aufgebaut und haben mehrere Arbeitsblätter. Das zweite Arbeitsblatt in jeder Datei heißt Kunde und da müsste nur die Zelle "L2" geändert werden und irgendwie haut das nicht so hin. Die Jahre davor haben wir das immer alles händisch geändert, aber das dauert immer so ewig lange. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 05. Okt. 2016 08:38 <-- editieren / zitieren --> Unities abgeben: Nur für janemu
Dann nimm Dir für den Anfang eins her, das ohne diesen Tamtam auskommt. Du brauchst keine Dialogbox für Dein Anliegen und Du willst es doch lernen, oder? Also fang klein an. Nimm den oben verlinkten Beispiel-Code her und versuch zu verstehen, was der tut. TESTE es in einem separaten Ordner, mit KOPIEN, nicht mit Deinen Kundendaten! Sheets("Kunde") statt ActiveSheet zum Beispiel, das solltest Du anpassen. Dann bekommst DU das sicher ebenfalls hin und kannst beim nächsten Mal noch viel spannendere Sachen machen. Viel Erfolg! ------------------ 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 |
janemu Mitglied
Beiträge: 8 Registriert: 05.10.2016 Text
|
erstellt am: 05. Okt. 2016 08:43 <-- editieren / zitieren --> Unities abgeben:
|
janemu Mitglied
Beiträge: 8 Registriert: 05.10.2016 Text
|
erstellt am: 05. Okt. 2016 14:24 <-- editieren / zitieren --> Unities abgeben:
Ich benötige noch einmal Hilfe. Ich möchte so gut wie alle Arbeitsblätter drucken die in der Mappe sind, außer die ersten 3 Blätter. Wie kann ich den Code schreiben, damit er alle anderen druckt? Also sozusagen 1-3 ignorieren, und ab 4 - unbegrenzt drucken. Habe diesen Code, aber der ist ja genau anders herum. ActiveWorkbook.Sheets(Array("QIF Maßnahmen", "Abweichungsliste", "Checkliste", "Zentralen", "Eingängeq", "Ausgänge", "Bereiche", "Zusatz-SV")).PrintOut Copies:=1, Collate:=True Es sind nämlich nicht immer genau die gleichen Arbeitsblätter in den Mappen, außer die ersten 3. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 05. Okt. 2016 14:58 <-- editieren / zitieren --> Unities abgeben: Nur für janemu
2 Möglichkeiten: a) Du schließt den (die) Namen, die Du nicht haben möchtest aus
Code: For a = 1 To Sheets.Count If Sheets(a).Name <> "MeinTollerName" Then Sheets(a).PrintOut Next a
b) Du kennst die Indexnummer und läßt die Schleife laufen von dort bis zum letzten Blatt laufen Code: For a = 4 To Sheets.Count Sheets(a).PrintOut Next a
Zusatzhilfe, für Deine nächsten Gehversuche: Schau Dir das Direktfenster an, Schnippsel: Code: Debug.Print Sheets(a).Name & " Index: " & Sheets(a).Index
und das Lokalfenster, das hilft ungemein, wenn man gar nicht weiß, was man wie alles ansprechen kann. Erschlägt zunächst, ist aber irgendwann ungemein hilfreich!
------------------ 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 |
janemu Mitglied
Beiträge: 8 Registriert: 05.10.2016 Text
|
erstellt am: 06. Okt. 2016 09:12 <-- editieren / zitieren --> Unities abgeben:
Dankeschön Hat alles soweit bisher geklappt und ich verstehe die eingegeben Code schon ganz gut. Jetzt lief es auch die ganze Zeit wirklich super und bei dem letzten Ordner bekomme ich plötzlich die Fehlermeldung "Laufzeitfehler 50290"... kannst Du dir vorstellen warum?
Code: Private Sub CommandButton1_Click() Dim cDir As String Dim sPath As String sPath = "X:\30 CustomerService\00 Nord\40 Initiativen_&_Prozesse\01 Qualität im Fokus\Prüflisten IMT\IMT Prüflisten 2017\Bielefeld\20-455-4\" 'Pfad ändern, auf "\" am Ende achten cDir = Dir(sPath & "*.xls") Do While cDir <> "" Workbooks.Open (sPath & cDir) Sheets("Kunde").Activate ActiveWorkbook.ActiveSheet.Range("L2") = "2017" 'Änderung Jahr Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="X:\30 CustomerService\00 Nord\40 Initiativen_&_Prozesse\01 Qualität im Fokus\Prüflisten IMT\IMT Prüflisten 2017\Bielefeld\20-455-4\" & Worksheets("Kunde").Range("J2").Value & "_IMT" & "_2017" & ".xlsx", ReadOnlyRecommended:=False, CreateBackup:=False 'Pfad ändern, auf "\" am Ende achten Application.DisplayAlerts = True ActiveWorkbook.Close False 'nächste Datei lesen cDir = Dir Loop Dim strText As String strText = " " MsgBox "Fertig :-) " & strText, 64, "" End Sub
[Diese Nachricht wurde von janemu am 06. Okt. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Entwicklungsingenieur (m/w/x) Automotive für den Interieur-Bereich | ?zählt seit 1986 zu den führenden Entwicklungspartnern der Automobilindustrie. Vom ersten Entwurf bis zur Serienreife bietet die KET GmbH mit rund 350 Mitarbeitern an vier Standorten eine Vielzahl attraktiver Tätigkeitsgebiete mit vielversprechenden Karriereaussichten und Entwicklungsperspektiven. Dabei liegen unsere Kernkompetenzen in den Bereichen Design ,Konstruktion, Modell- und Prototypenbau, Projektmanagement sowie Fahrzeugauf- und umbauten.... | Anzeige ansehen | Teamleitung, Gruppenleitung |
|
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 06. Okt. 2016 09:58 <-- editieren / zitieren --> Unities abgeben: Nur für janemu
Moin, nein, tut mir leid, ist mir persönlich so noch nicht untergekommen. Google ist heute auch nicht mein Freund, der bietet mir leider nicht DEN Toplink an. Aber u.U. helfen Empfehlungen von >> hier <<, die da lauten, auf die ganze SELECTiererei und/oder die ACTIVE(sheet/workbook)-Dinge zu verzichten. Das ist ja generell meine Empfehlung, denn sie sind zu 98% nicht erforderlich. Zum Select: siehe Beitrag von online-excel >> http://www.online-excel.de/excel/singsel_vba.php?f=78 << zu diesem Thema. Andere Quellen murmeln etwas von verlorenem Fokus, scheint ein eher blöder Fehler zu sein, auch für die Recherche. Sorry, aber mehr hab ich derzeit nicht. PS: Die Pfade sind aber schon sehr lang bei euch und enthalten auch fiese Sonderzeichen. Muß das so sein? Wird kein Grund für Dein jetziges Problem sein, wäre aber ggfs. generell zu überdenken. ------------------ 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 |