Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
560to564
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
560to564
560to564
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Hilfe bei Code erweitern

Hilfe bei Code erweitern
06.02.2005 14:15:41
Lorenz
Hallo Excelianer!
Würde gerne den Code um die Bereiche sBereich2, sbereich3, sBereich4 erweitern!
Schaffe es aber nicht. So wie der CODE geschrieben ist funktioniert er nur mit einem Bereich.

Sub AusGeschlossenerDateiLesen()
Dim sTxt As String, sBereich1 As String, sBereich2 As String, sBereich3 As String, sBereich4 As String, sAktuell As String
Dim rng As Range, rngCell As Range
sBereich1 = "a9:o9"
'sBereich2 = "c16:z62"
'sBereich3 = "a63:o84"
'sBereich4 = "w103:ak220"
sAktuell = Range("d1").Value 'Sheetname (ActiveSheet)
sTxt = "'" & Range("B1").Value ' Path
sTxt = sTxt & "[" & Range("B2").Value & "]" 'SheetName
sTxt = sTxt & sAktuell & "'!"
sTxt = sTxt & sBereich1
Set rng = Worksheets(sAktuell).Range(sBereich1)
rng.Cells(1).Formula = "=if(" & sTxt & "="""",""""," & sTxt & ")"
rng.Cells(1).Copy rng
rng.Value = rng.Value
rng.Columns.AutoFit
'rng.Parent.Select
End Sub

Danke im Voraus und Grüsse Lorenz

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe bei Code erweitern
Ramses
Hallo
ungetestet, aber probier mal

Sub AusGeschlossenerDateiLesen()
Dim sTxt As String, sBereich1 As String, sBereich2 As String, sBereich3 As String, sBereich4 As String, sAktuell As String
Dim rng As Range, rngCell As Range
Dim i
sBereich1 = "a9:o9"
sBereich2 = "c16:z62"
sBereich3 = "a63:o84"
sBereich4 = "w103:ak220"
for i = 1 to 4
sAktuell = Range("d1").Value 'Sheetname (ActiveSheet)
sTxt = "'" & Range("B1").Value ' Path
sTxt = sTxt & "[" & Range("B2").Value & "]" 'SheetName
sTxt = sTxt & sAktuell & "'!"
sTxt = sTxt & "sBereich" & i
Set rng = Worksheets(sAktuell).Range("sBereich" & i)
rng.Cells(1).Formula = "=if(" & sTxt & "="""",""""," & sTxt & ")"
rng.Cells(1).Copy rng
rng.Value = rng.Value
rng.Columns.AutoFit
'rng.Parent.Select
next i
End Sub

Ob sich allerdings
sAktuell = Range("d1").Value 'Sheetname (ActiveSheet)
immer auf D1 beziehen muss, hat sich mir leider nicht erschlossen
Gruss Rainer
Anzeige
AW: Hilfe bei Code erweitern
Lorenz
Hallo Rainer!
zu sAktuell = Range("d1").Value 'Sheetname (ActiveSheet)
In D1 steht immer der SheetName von dem Sheet in dem der Code aufgerufen wird.
Bei dem CODE ergibt die Zeile" sTxt = sTxt & "sBereich" & i leider "Bereich1" und nicht der tatsächliche Bereich wie "a9:o9"
Grüsse Lorenz
AW: Hilfe bei Code erweitern
Ramses
Hallo
damit funktioniert es, und ich denke trotzallem ausreichend schnell

Sub AusGeschlossenerDateiLesen()
Dim sTxt As String, sBereich1 As String, sBereich2 As String, sBereich3 As String, sBereich4 As String, sAktuell As String
Dim rng As Range, rngCell As Range
Dim i
sBereich1 = "a9:o9"
sBereich2 = "c16:z62"
sBereich3 = "a63:o84"
sBereich4 = "w103:ak220"
sAktuell = Range("d1").Value 'Sheetname (ActiveSheet)
sTxt = "'" & Range("B1").Value ' Path
sTxt = sTxt & "[" & Range("B2").Value & "]" 'SheetName
sTxt = sTxt & sAktuell & "'!"
sTxt = sTxt & sBereich1
Set rng = Worksheets(sAktuell).Range(sBereich1)
rng.Formula = "=if(" & sTxt & "="""",""""," & sTxt & ")"
rng.Value = rng.Value
rng.Columns.AutoFit
Set rng = Worksheets(sAktuell).Range(sBereich2)
rng.Formula = "=if(" & sTxt & "="""",""""," & sTxt & ")"
rng.Value = rng.Value
rng.Columns.AutoFit
Set rng = Worksheets(sAktuell).Range(sBereich3)
rng.Formula = "=if(" & sTxt & "="""",""""," & sTxt & ")"
rng.Value = rng.Value
rng.Columns.AutoFit
Set rng = Worksheets(sAktuell).Range(sBereich4)
rng.Formula = "=if(" & sTxt & "="""",""""," & sTxt & ")"
rng.Value = rng.Value
rng.Columns.AutoFit
End Sub

gruss Rainer
Anzeige
AW: Hilfe bei Code erweitern
Lorenz
Hallo Rainer!
Danke sehr vielmals!!!
so funkts!
kannst du mir bitte noch sagen wie das oder die Zellformate in der Zieltabelle erhalten bleibt. Habe z.B. einen Teil mit Zeit "15:45" formatiert (wird beim Einlesen auf Dezimalzahl geändert). (Format Quelltabelle ist identisch mit Format der Zieltabelle)
viele Grüsse
Lorenz
AW: Hilfe bei Code erweitern
Lorenz
Hallo Rainer!
Das mit dem "Format" hat sich erübrigt! (war ein Relikt von den vorangegangenen Fehlversuchen).
Danke nochmals für die schnelle Hilfe!
Grüsse
Lorenz
AW: Hilfe bei Code erweitern
06.02.2005 14:56:06
Klaus-Dieter
Hallo Lorenz,
so könnte es gehen, ist nicht getestet:

Sub AusGeschlossenerDateiLesen()
Dim sTxt As String ', sBereich1 As String, sBereich2 As String, sBereich3 As String, sBereich4 As String, sAktuell As String
Dim rng As Range, rngCell As Range
Dim sBereich As Variant
Dim s As Integer
sBereich = Array("a9:o9", "c16:z62", "a63:o84", "w103:ak220")
For s = 0 To 3
sAktuell = Range("d1").Value 'Sheetname (ActiveSheet)
sTxt = "'" & Range("B1").Value ' Path
sTxt = sTxt & "[" & Range("B2").Value & "]" 'SheetName
sTxt = sTxt & sAktuell & "'!"
sTxt = sTxt & sBereich(s)
Set rng = Worksheets(sAktuell).Range(sBereich(s))
rng.Cells(1).Formula = "=if(" & sTxt & "="""",""""," & sTxt & ")"
rng.Cells(1).Copy rng
rng.Value = rng.Value
rng.Columns.AutoFit
'rng.Parent.Select
Next s
End Sub

Gruß Klaus-Dieter

Anzeige
AW: Hilfe bei Code erweitern
Lorenz
Hallo Klaus-Dieter!
Leider gehts nicht!
Die Bereiche können nur Zeilenweise angegeben werden "a6:o6", "a7:o7", "a8:o8".....
nicht so "a6:o16".
wenn die Bereiche zeilenweise w.o. definiert werden, so wird der code extrem langsam(zumindest bei mir)
Grüsse Lorenz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige