Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1496to1500
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

Alle Dateien ändern, ausgeblendete Tabelle

Alle Dateien ändern, ausgeblendete Tabelle
16.06.2016 17:27:25
Lutz
Hallo liebe Excel-Spezialisten,
mal wieder habe ich ein Problem bei dem mir die Recherché immer nur Ansätze einer Lösung geliefert hat.
Ich müßte auf einem Server (deswegen am besten Auswahl des Verzeichnisses) alle Dateien eines Verzeichnisses (hat keine weiteren Unterverzeichnisse) ändern.
Und zwar soll aus einer bereits geöffneten Datei "Rates.xlsx" ein Zellbereich in jede andere Datei kopiert werden.
Der Zellbereich ist K3:AP23
Ausserdem soll in Zelle F1 eine 5 eingetragen werden
Die Tabelle in der das passieren soll, "RatesFX" und ist ausgeblendet. Nach dem eintragen sollte die Tabelle wieder ausgeblendet werden.
Danach die Datei speichern, schliessen und nächste Datei...
Etwas in der Art finde ich - aber ohne Tabelle einblenden etc.
Sub Oeffnen()
Dim Datei As String
Dim Arbeitsmappe As String
Dim PFAD As String
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.InitialFileName = "D:\"
.ButtonName = "OK"
.Title = "Ordner auswählen"
.Show
If .SelectedItems.Count  0 Then
PFAD = .SelectedItems(1)
End If
End With
If PFAD  "" Then
Datei = Dir(PFAD & "\" & "*.xls")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Do While Datei  ""
Application.Workbooks.Open Datei
'ActiveWorkbook.Close True
Datei = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End If
End Sub
Oder dieses hier:
Sub test()
Const folderspec = "c:\temp" 'Hier das Verzeichnis, in dem die 100 XLS Dateien liegen - aber  _
keine anderen XLS als die zu Ändernden!
Dim fs, f, f1, fc
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(folderspec)
Set fc = f.Files
For Each f1 In fc
If UCase(Right(f1, 3)) = "XLS" Then 'Excel File gefunden
Call ChangeCell(folderspec, f1.Name)
End If
Next
End Sub

Sub ChangeCell(folder As String, file As String)
Workbooks.Open Filename:=folder & "\" & file
Range("G23").Select
ActiveCell.Formula = "=G22/C8"
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

Aber was muss ich ändern damit das so funktioniert wie ich es brauche?
Weiss jemand Rat?
Vielen Dank und viele Grüße Lutz

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Dateien ändern, ausgeblendete Tabelle
17.06.2016 05:52:08
fcs
Hallo Lutz,
hier eines der Makros mit den erfordelrichen Anpassungen inkl. einiger Prüfungen, um Fehler mit Makro-Abbruch zu vermeiden.
Gruß
Franz
Sub Oeffnen_Kopieren()
Dim Datei As String
Dim Arbeitsmappe As String
Dim PFAD As String
Dim wkbZiel As Workbook, wkbRates As Workbook
Dim wksZiel As Worksheet, wksRates As Worksheet
Dim StatusCalc As Long
On Error GoTo Fehler
With Application
.ScreenUpdating = False
StatusCalc = .Calculation
.Calculation = xlCalculationManual
.DisplayAlerts = False
End With
If fncCheckWorkbookOpen("Rates.xlsx") = False Then
MsgBox "Die Datei ""Rates.xlsx"" ist nicht geöffnet!", vbOKOnly, _
"Makro; Oeffnen_Kopieren"
GoTo beenden
End If
Set wkbRates = Application.Workbooks("Rates.xlsx")
If fncCheckSheetName(wkbRates, "RatesFX") = False Then
MsgBox "Das Blatt ""RatesFX"" ist in Datei """ & wkbRates.Name & """ ist nicht  _
vorhanden!", _
vbOKOnly, _
"Makro; Oeffnen_Kopieren"
GoTo beenden
End If
Set wksRates = wkbRates.Worksheets("RatesFX") 'Blattname ggf, anpassen
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.InitialFileName = "D:\"
.ButtonName = "OK"
.Title = "Ordner auswählen"
.Show
If .SelectedItems.Count  0 Then
PFAD = .SelectedItems(1)
Else
GoTo beenden
End If
End With
Datei = Dir(PFAD & "\" & "*.xls")
Do While Datei  ""
Set wkbZiel = Application.Workbooks.Open(PFAD & "\" & Datei, UpdateLinks:=False)
If fncCheckSheetName(wkbZiel, "RatesFX") = False Then
MsgBox "Das Blatt ""RatesFX"" ist in Datei """ & wkbZiel.Name & """ ist nicht  _
vorhanden!", _
vbOKOnly, _
"Makro; Oeffnen_Kopieren"
Else
Set wksZiel = wkbZiel.Worksheets("RatesFX")
With wksZiel
.Visible = xlSheetVisible
wksRates.Range("K3:AP23").Copy Destination:=.Range("K3:AP23")
.Range("F1").Value = 5
.Visible = xlSheetHidden
End With
End If
wkbZiel.Close savechanges:=True
Set wkbZiel = Nothing
Datei = Dir()
Loop
MsgBox "Fertig"
beenden:
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
With Application
.ScreenUpdating = True
.Calculation = StatusCalc
.DisplayAlerts = False
End With
End Sub
Function fncCheckWorkbookOpen(ByVal strName As String) As Boolean
Dim objWB
On Error GoTo Fehler
Set objWB = Application.Workbooks(strName)
fncCheckWorkbookOpen = True
Fehler:
End Function
Function fncCheckSheetName(wkb As Workbook, ByVal strName As String) As Boolean
Dim objSheet
On Error GoTo Fehler
Set objSheet = wkb.Sheets(strName)
fncCheckSheetName = True
Fehler:
End Function

Anzeige
AW: Alle Dateien ändern, ausgeblendete Tabelle
17.06.2016 10:08:31
Lutz
Hallo Franz,
ich bin schwer beeindruckt (vor allem noch die ganzen Fehlerprüfungen)
Dachte erst es geht nicht aber war natürlich mein Fehler - die Dateien kommen als .xlsb an...
Vielen Lieben Dank, das spart mir echt Stunden an Arbeit und ich kann das als Vorlage immer wieder nutzen:)
Also noch mal wirklich herzlichen Dank für Deine Hilfe und ich wünsche Dir ein schönes Wochenende
Viele Grüße Lutz

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige