Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
896to900
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
896to900
896to900
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Array

Array
Christian
Hallo Leute,
ich habe da ein kleines Problem mit einem array. Folgendes: Ich habe eine Datei mit verschiedenlangen Tabelle ( ("853", "856" haben 90 Zeilen , die andere hat nur 50 Zeilen)
Das Folgende Array löscht die Daten aus diesen Tabellen.
Die Daten aus der unterste Zeile 90 bzw. 50 sollen aber nicht gelöscht werden.
kann mir jemand helfen und das mit in diesem Array verhaften ?
Sub DatenTransferieren(strZeitintervall$)
Dim wksStorno As Worksheet, wksZiel As Worksheet
Dim lngZeileStorno&, lngZeileZiel&
Dim HFL_Abt$, StartDatum As Date, EndDatum As Date
Dim arrTabellen, strTabName, i%
Set wksStorno = ActiveWorkbook.Worksheets("Stornos Gesamt")
arrTabellen = Array("853", "856", "Sonstige") 'Liste der Zieltabellen lang
'Altdaten in Zieltabellen löschen
For Each strTabName In arrTabellen
Set wksZiel = ActiveWorkbook.Worksheets(strTabName)
With wksZiel
.Range(.Cells(7, 2), .Cells(89, 6)).ClearContents
.Range(.Cells(7, 8), .Cells(89, 9)).ClearContents
End With
Next

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Array
23.08.2007 18:34:00
Daniel
Hi
eigentlich so:
- für die Zeilen-Länge nochmal ein Array aufmachen so wie arrTabellen, nur halt mit der Anzahl Zeilen (49 und 89); heißt arrZeilen
die Schleife sollte dann so aussehen:
For i = 0 to Ubound(arrTabellen)
Set wksZiel = ActiveWorkbook.Worksheets(arrTabellen(i))
With wksZiel
.Range(.Cells(7, 2), .Cells(arrZeilen(i), 6)).ClearContents
.Range(.Cells(7, 8), .Cells(arrZeilen(i), 9)).ClearContents
End With
next
Gruß, Daniel

AW: Array
24.08.2007 10:10:00
Christian
Hallo Daniel,
ich hab mit arrays leider nicht so viel am Hut.
An welcher Stelle muß ich denn den neuen Array einfügen ? oder muss der einfach nur drunter.
Außerdem frage ich mich wie er erkenne soll welche Tabelle nun 90 und welche Tabelle 50 Zeichen hat, wenn ich ihm nicht ausdrücklich die Tabellenbezeichnung nenne. Oder habe ich da etwa etwas falsch verstanden ?
Sub DatenTransferieren(strZeitintervall$)
Dim wksStorno As Worksheet, wksZiel As Worksheet
Dim lngZeileStorno&, lngZeileZiel&
Dim HFL_Abt$, StartDatum As Date, EndDatum As Date
Dim arrTabellen, strTabName, i%
Set wksStorno = ActiveWorkbook.Worksheets("Stornos Gesamt")
arrTabellen = Array("853", "856", "Sonstige") 'Liste der Zieltabellen lang
'Altdaten in Zieltabellen löschen
For Each strTabName In arrTabellen
Set wksZiel = ActiveWorkbook.Worksheets(strTabName)
With wksZiel
.Range(.Cells(7, 2), .Cells(89, 6)).ClearContents
.Range(.Cells(7, 8), .Cells(89, 9)).ClearContents
End With
Next
For i = 0 to Ubound(arrTabellen)
Set wksZiel = ActiveWorkbook.Worksheets(arrTabellen(i))
With wksZiel
.Range(.Cells(7, 2), .Cells(arrZeilen(i), 6)).ClearContents
.Range(.Cells(7, 8), .Cells(arrZeilen(i), 9)).ClearContents
End With
next

Anzeige
AW: Array
24.08.2007 10:15:00
Christian
Hallo Daniel,
ich hab mit arrays leider nicht so viel am Hut.
An welcher Stelle muß ich denn den neuen Array einfügen ? oder muss der einfach nur drunter.
Außerdem frage ich mich wie er erkenne soll welche Tabelle nun 90 und welche Tabelle 50 Zeichen hat, wenn ich ihm nicht ausdrücklich die Tabellenbezeichnung nenne. Oder habe ich da etwa etwas falsch verstanden ?
Sub DatenTransferieren(strZeitintervall$)
Dim wksStorno As Worksheet, wksZiel As Worksheet
Dim lngZeileStorno&, lngZeileZiel&
Dim HFL_Abt$, StartDatum As Date, EndDatum As Date
Dim arrTabellen, strTabName, i%
Set wksStorno = ActiveWorkbook.Worksheets("Stornos Gesamt")
arrTabellen = Array("853", "856", "Sonstige") 'Liste der Zieltabellen lang
'Altdaten in Zieltabellen löschen
For Each strTabName In arrTabellen
Set wksZiel = ActiveWorkbook.Worksheets(strTabName)
With wksZiel
.Range(.Cells(7, 2), .Cells(89, 6)).ClearContents
.Range(.Cells(7, 8), .Cells(89, 9)).ClearContents
End With
Next
For i = 0 to Ubound(arrTabellen)
Set wksZiel = ActiveWorkbook.Worksheets(arrTabellen(i))
With wksZiel
.Range(.Cells(7, 2), .Cells(arrZeilen(i), 6)).ClearContents
.Range(.Cells(7, 8), .Cells(arrZeilen(i), 9)).ClearContents
End With
next

Anzeige
AW: Array
24.08.2007 18:09:00
Daniel
Hi
wenn du mit Arrays nix am Hut hast, solltest du sie vielleicht nicht verweden und dir ne andere Lösung einfallen lassen?
so wie du die Blattnamen in einem Array gespeichert hast, legst du die Anzahl der Zeilen ebenfalls in einem Array ab, und zwar so in der Reihenfolge, daß sie zu den Tabellenblattnamen im ersten Array passen.
dann verwendest du nicht die FOR-EACH - Schleife, sondern eine normale For-Next-Schleife, und zwar von 0 bis zur Anzahl der Elemente im Array -1 (das erste Element eines Arrays hat normalerweise die Index-Nr 0) und verwendest dann den Schleifenzähler als Index-Nr, so bekommst du dann in jedem Schleifendruchlauf die zueinander Passenden Werte aus beiden Arrays
Gruß, Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige