Anzeige
Archiv - Navigation
1912to1916
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zelle ändern

Zelle ändern
02.01.2023 15:23:23
Thomas
Hallo Excelfreunde,
aufgrund meiner Fehlerhaften Formel muss ich diese in sehr vielen Arbeitsmappen reinzuschreiben.
Um diese nicht alle per Hand zu ändern versuche ich gerade ein passendes Makro zu schreiben.
Anbei mein Versuch:

Sub OpenFiles2()
Dim FILE_PATH As String
Dim MyFile As String
Dim objWorkbook As Workbook
Application.ScreenUpdating = False
FILE_PATH = ThisWorkbook.Path & "\"
MyFile = Dir$(FILE_PATH & "*.xlsm")
Do Until MyFile = ""
Set objWorkbook = Workbooks.Open(Filename:=FILE_PATH & MyFile)
objWorkbook.tabelle7.Range("D2").Formula = "=TRIM(MID(R[-11]C[3],SEARCH(""."",R[-11]C[3])-2,9))"
Call objWorkbook.Close(SaveChanges:=True)
MyFile = Dir$
Loop
Application.ScreenUpdating = True
End Sub
Jedoch erhalte ich derzeit in der Zeile
objWorkbook.tabelle7.Range("D2").Formula = "=TRIM(MID(R[-11]C[3],SEARCH(""."",R[-11]C[3])-2,9))"
die Fehlermeldung " Objekt unterstützt diese Eigenschaft nicht "
Mein Ziel ist es alle in dem Ordner befindlichen Arbeitsmappen zu öffnen und in der Tabelle7 Zelle d2 diese Formel auszutauschen =GLÄTTEN(TEIL(G2;SUCHEN(".";G2)-2;9))
dann zu speichern und wieder zu schließen.
Kann mir dabei jemand helfen? Ich bekomme es leider allein nicht hin.
MFG Thomas

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle ändern
02.01.2023 15:34:08
onur
Und der Codename der Tabelle ist immer "tabelle7" in allen Dateien?
AW: Zelle ändern
02.01.2023 16:57:46
Daniel
Hi
1. Fehler: die Ansprache des Worksheets.
in einer Fremden Datei kannst du das Worksheet nur über die Worksheet-Liste ansprechen, aber nicht als eigenständiges Objekt.
Also entweder, wenn das Tabellenblatt den Reiternamen "Tabelle7" hat:

 objWorkbook.Sheets("tabelle7").Range("D2")
oder wenn es das 7. Sheet in der Liste ist (dann Name egal):

 objWorkbook.Sheets(7).Range("D2")
wenn du das Blatt mit dem Codenamen "tabelle7" brauchst, dann geht das in einer Fremdmappe nur so:

dim sh as worksheet
for each sh in objWorkbook.worksheets
if sh.Codename = "tabelle7" then
sh.Range("D2").Formula  = ...
end if
next
2. Fehler:
du gibst an, das die Formel normal mit A1-Adressen und in Englisch angegeben ist (.Formula), gibst sie dann aber mit R1C1-Adressen an.
Das muss schon zusammen passen, dh wenn R1C1-Adressen dann auch Range("D2").FormulaR1C1 = "..."
3. Fehler:
die Bezüge in deiner Formel sind falsch. Du hast als Adresse: R[-11]C[3] und schreibst die Formel in die Zelle D2. Von Zeile 2 kannst du aber nicht 11 Zeilen nach oben gehen, denn die kleinstmögliche Zeile ist 1. Zeile -9 gibt es nicht.
Gruß Daniel
Anzeige
AW: Zelle ändern
02.01.2023 17:00:07
Thomas
Hallo Onur,
besten dank das du dir dies mal anschaust.
Ja es ist immer die Tabelle7 und die Zelle G2.
mfg thomas
AW: Zelle ändern
02.01.2023 17:50:30
Thomas
Hallo Daniel und Excelfreunde,
besten dank für deine/eure Tipps.
so läuft es jetzt durch:

Sub OpenFiles2
Dim sh As Worksheet
Dim FILE_PATH As String
Dim MyFile As String
Dim objWorkbook As Workbook
Application.ScreenUpdating = False
FILE_PATH = ThisWorkbook.Path & "\"
MyFile = Dir$(FILE_PATH & "*.xlsm")
Do Until MyFile = ""
Set objWorkbook = Workbooks.Open(Filename:=FILE_PATH & MyFile)
For Each sh In objWorkbook.Worksheets
If sh.CodeName = "Tabelle7" Then
sh.Range("D2").FormulaR1C1 = "=TRIM(MID(RC[3],SEARCH(""."",RC[3])-2,9))"
End If
Next
Call objWorkbook.Close(SaveChanges:=True)
MyFile = Dir$
Loop
Application.ScreenUpdating = True
End Sub
und es werden die entsprechenden Änderungen vorgenommen.
Aber eigentlich müsste ich am Ende wahrscheinlich noch das Objekt zerstören.
Wo/Wie könnte ich das
Set objWorkbook = Nothing
setzen. Oder ist dies in diesem Fall nicht Nötig?
mfg thomas
Anzeige
AW: Zelle ändern
02.01.2023 18:31:16
Thomas
Hallo Excelfreunde,
Hallo Excelfreunde,
ups ich bin ein Dummy.
Natürlich muss ich es einfach nur ans ende setzen. Ich hatte einen kompletten Denkfehler.
Sorry das Problem ist damit gelöst.
Besten dank nochmal für eure Hilfe.
mfg thomas
AW: Zelle ändern
02.01.2023 18:35:48
Daniel
Hi
alles was innerhalb eines Makros deklariert wird, wird bei Makroende automatisch zerstört.
dh das wäre hier nicht notwendig.
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige