Hilfe bei Code erweitern

Bild

Betrifft: Hilfe bei Code erweitern von: Lorenz
Geschrieben am: 06.02.2005 14:15:41

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
Bild


Betrifft: AW: Hilfe bei Code erweitern von: Ramses
Geschrieben am: 06.02.2005 14:55:50

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


Bild


Betrifft: AW: Hilfe bei Code erweitern von: Lorenz
Geschrieben am: 06.02.2005 16:23:06

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


Bild


Betrifft: AW: Hilfe bei Code erweitern von: Ramses
Geschrieben am: 06.02.2005 16:46:55

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


Bild


Betrifft: AW: Hilfe bei Code erweitern von: Lorenz
Geschrieben am: 06.02.2005 17:08:48

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


Bild


Betrifft: AW: Hilfe bei Code erweitern von: Lorenz
Geschrieben am: 06.02.2005 17:27:01

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


Bild


Betrifft: AW: Hilfe bei Code erweitern von: Klaus-Dieter
Geschrieben am: 06.02.2005 14:56:06

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




Bild


Betrifft: AW: Hilfe bei Code erweitern von: Lorenz
Geschrieben am: 06.02.2005 16:29:08

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


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Hilfe bei Code erweitern"