Formel in 100en Tabellen ändern
#1
Hallo ihr Lieben,

ich bins nochmal :s 

Ich habe ca. 300 Tabellen in denen in Blatt 3-7 jeweils eine Formeln geändert werden muss. Also "alter" Inhalt raus und neuer rein.
Geht das irgendwie automatisiert? Huh 

Also: "Öffne alle Tabellen in dem Ordner und änder im Blatt 3 die Spalte F5, in Blatt 4 die Spalte F5, und Blatt 6 die Spalte F5 und Speicher die neue Tabelle ab..."

Ansonsten habe ich heute Abend 'ne langweilige Beschäftigung vor mir
Top
#2
Hallo,

ja, das sollte man automatisieren können, aber es wird trotzdem etwas dauern (Laufzeit)

Beschreibe möglichst genau, was geändert werden soll.

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Bienchen99
Top
#3
Hallo!

Das kann so lange laufen wie es will, hauptsache ich verblöde nicht bei der Arbeit.

Im Blatt "GWN_Auto","GWN_Auto_Quartil","GWN_Auto_Quantil" und "GWN_Haendisch" muss die Formel "=($J$1*C3+$J$2)*(-(B3-B2)+(C3-C2))" durch "=($J$1*C3+$J$2)*(-(B3-B2))+(C3-C2)"


Die kleine aber feine Klammer hat mir das Genick gebrochen und jetzt stehe ich vor 300 "falschen" Tabellen.


Das wäre super wenn das klappen würde :17:
[-] Folgende(r) 1 Nutzer sagt Danke an lara90 für diesen Beitrag:
  • Bienchen99
Top
#4
Und nun systematisch:

- wo sind die Dateien gespeichert ?
- welche Namen haben diese Dateien
- welche Art sind diese Dateien (.xls, xlsx, xlsm, xlsb,,.txt,.csv)
- gibt es in diesen Ordner(n) Dateien die nicht geändert werden müssen
- hast du ein Backup von diesen Dateien ?
- hat jede Datei die drei unterschiedene Arbeitsblätter ?
- welche Zellen enthalten diese Formel ?
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Bienchen99
Top
#5
Hallo,

teste den bitte zuerst an einer Kopie in einem anderen Ordner, in Einzelschrittmodus F8:

Code:
Sub F_en()

'zuerst im Einzelschrittmodus F8 testen (an einer Kopie)

Pfad = "C:\Temp\" '<<<<<<<<<<< anpassen
Datei = Dir(Pfad & "*.xls?")
Do While Len(Datei)
sh = Array("GWN_Auto", "GWN_Auto_Quartil", "GWN_Auto_Quantil", "GWN_Haendisch")
   i = i + 1
   Application.StatusBar = i
For Each s In sh
   'falls nötig den Bereich einschränken
   
   y = Sheets(s).Cells.Replace("=($J$1*C3+$J$2)*(-(B3-B2)+(C3-C2))", "=($J$1*C3+$J$2)*(-(B3-B2))+(C3-C2)", xlPart)

Next s
Datei = Dir
Loop
End Sub

mfg
[-] Folgende(r) 2 Nutzer sagen Danke an Fennek für diesen Beitrag:
  • lara90, Bienchen99
Top
#6
Danke danke!

Und nun systematisch:

- wo sind die Dateien gespeichert ? --> Desktop
- welche Namen haben diese Dateien:  Unterschiedlich (5-6Stellige Kennung+System:  ("123456_M2","71224_M2")
- welche Art sind diese Dateien (.xls, xlsx, xlsm, xlsb,,.txt,.csv) ---> xlsx
- gibt es in diesen Ordner(n) Dateien die nicht geändert werden müssen ---> nein
- hast du ein Backup von diesen Dateien ? --> ja
- hat jede Datei die drei unterschiedene Arbeitsblätter ? ---> ja
- welche Zellen enthalten diese Formel ? --> die Nachbarzellen bauen darauf auf
[-] Folgende(r) 1 Nutzer sagt Danke an lara90 für diesen Beitrag:
  • Bienchen99
Top
#7
(18.04.2018, 20:52)Fennek schrieb: teste den bitte zuerst an einer Kopie in einem anderen Ordner, in Einzelschrittmodus F8:

Danke dir!

Ich werde es mal austesten!
Top
#8
Hallo,

der Code bearbeitet alle .xlsx, .xlsm, .xlsb und .xls

Falls dies zuviel ist im Dir-Befehl auf "*.xlsx" einschränken.

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Bienchen99
Top
#9
Die Pfad-Angabe muss in der englichen Notation erfolgen:


Code:
"c:\users\deinName\destop\"


users mit s
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Bienchen99
Top
#10
da war doch noch etwas:


Code:
Sub F_en()

'zuerst im Einzelschrittmodus F8 testen (an einer Kopie)
dim WB as workbook

Pfad = "C:\Temp\" '<<<<<<<<<<< anpassen
Datei = Dir(Pfad & "*.xls?")

Do While Len(Datei)
set WB = workbooks.open(Pfad & Datei)
sh = Array("GWN_Auto", "GWN_Auto_Quartil", "GWN_Auto_Quantil", "GWN_Haendisch")
   i = i + 1
   Application.StatusBar = i
For Each s In sh
   'falls nötig den Bereich einschränken
   
   y = WB.Sheets(s).Cells.Replace("=($J$1*C3+$J$2)*(-(B3-B2)+(C3-C2))", "=($J$1*C3+$J$2)*(-(B3-B2))+(C3-C2)", xlPart)

Next s
WB.close true

Datei = Dir
Loop
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Bienchen99
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste