habe mal wieder eine Frage: ich lade mit folgenden Code eine Datei und kopiere alle Tebellenblätter aus der Quelle bei mir rein.
Die Tabellenblätter der Quelle, die da eingelesen werden, habe zum Teil untereinander Verknüpfungen (Verweise). Beim einlesen wollte ich aber erreichen, das bei allen Tabellenblättern immer nur der reine TEXT eingelesen wird, also Formeln, bzw deren Ergebnisse in WERTE unmwandeln. Das habe ich seither (dank EUCH) so gemacht:
Sub Tabelle_laden() Dim wbZiel As Workbook Dim wbQuelle As Workbook Dim varWB_Quelle, wks_Quelle Set wbZiel = ActiveWorkbook varWB_Quelle = Application.GetOpenFilename(Filefilter:="Excel(*.xl*),*.xl*", _ Title:="Bitte Datei wählen !") If varWB_Quelle False Then Set wbQuelle = Application.Workbooks.Open(Filename:=varWB_Quelle, ReadOnly:=True) 'in allen Blättern der Quelle die Formeln durch Werte ersetzen For Each wks_Quelle In wbQuelle.Worksheets wks_Quelle.UsedRange.Copy wks_Quelle.UsedRange.PasteSpecial Paste:=xlPasteValues Next Application.CutCopyMode = False wbQuelle.Sheets.Copy after:=wbZiel.Sheets(wbZiel.Sheets.Count) wbQuelle.Close savechanges:=False Else: End End If End Sub
So, das funktioniert soweit.
Nun habe ich Quellen, wo einzelnen Tabellenblätter mit einem Passwort versehen sind. (Passwort lautet zB "start123")
Mir ist das Passwort bekannt, ich könnte vorher den Blattschutz manuell entfernen, aber es gibt auch andere User, die sollen dieses PW NICHT wissen, und trotzdem mit dem Makro arbeiten können.
Meine Frage: wie kann ich die Tabellenblätter einlesen, und alle Formeln in Werte umwandeln, auch wenn einzelne Tabellenblätter einen Blattschutz ("start123" haben.
Kann ich den Blattschutz ; nach dem einlesen der Tabellenblätter aus der Quelle, per Makro lösen, die Formeln durch Werte ersetzen und dann über alle eingelesene Tabellenblätter wieder den Blattschutz drauf ? (Es sollen aber nur die Tabellenblätter wieder geschützt werden, die von der externen Quelle eingelesen wurden)
Geht das ?
Danke mal
Mandy