Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilennummer in Array einlesen

Zeilennummer in Array einlesen
19.10.2019 16:40:40
Theo
Hallo,
ich habe ein weiteres Problem. Und zwar will ich wenn eine Bedingung erfüllt ist die Aktuelle Zeile in ein array schreiben. Anschließend dann zu einem späteren Zeitpunkt in Spalte I (9) aller im Array gespeicherten Zeilen "0" einfügen und das Array wieder leeren.
Also ungefähr so:

Sub Auswerten()
**Array Leeren**
For Zeile = 1 To 1000
If Cells(Zeile, 2).Value = "Wahr" Then
**Füge Zeilennummer (Variable Zeile) in ein Array hinzu**
End If
Next Zeile
End Sub
Sub Späterer Zeitpunkt()
Cells(**Zeilen aus Array**, 9).Value = "0"
**Array Leeren**
End Sub

Wäre sehr dankbar um Hilfe! Danke!
Gruß,
Theo


		

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilennummer in Array einlesen
19.10.2019 17:05:49
Nepumuk
Hallo Theo,
teste mal:
Option Explicit

Private Declare Function SafeArrayGetDim Lib "oleaut32.dll" ( _
    ByRef psa() As Any) As Long

Private mlngArray() As Long

Sub Auswerten()
    Dim Zeile As Long, ialngIndex As Long
    Dim avntTemp As Variant
    Erase mlngArray
    avntTemp = Range(Cells(1, 2), Cells(1000, 2)).Value
    For Zeile = 1 To 1000
        If avntTemp(Zeile, 1) Then
            Redim Preserve mlngArray(ialngIndex)
            mlngArray(ialngIndex) = Zeile
            ialngIndex = ialngIndex + 1
        End If
    Next Zeile
End Sub

Sub Späterer_Zeitpunkt()
    Dim ialngIndex As Long
    If SafeArrayGetDim(mlngArray) Then
        For ialngIndex = LBound(mlngArray) To UBound(mlngArray)
            Cells(mlngArray(ialngIndex), 9).Value = 0
        Next
        Erase mlngArray
    Else
        Call MsgBox("Keine Daten im Array.", vbExclamation, "Hinweis")
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Zeilennummer in Array einlesen
19.10.2019 17:19:08
Theo
Hallo,
danke schon einmal für die Lösung!
Jedoch kommt die Fehlermeldung:
Der Code in diesem Projekt muss für die Verwendung auf 64-bit-Systemen aktualisiert werden. Überarbeiten und aktualisieren sie die Declare-Anweisungen, und markieren Sie sie mit dem PtrSafe-Attribut.
Er markiert die 3. und 4. Zeile in deinem Code rot. Also Declare Function
oleaut32.dll zu oleaut64.dll ändern funktioniert auf alle fälle nicht was ja fast zu erwarten war
AW: Zeilennummer in Array einlesen
19.10.2019 17:25:54
Nepumuk
Hallo Theo,
ändere die Importfunktion:
Private Declare Function SafeArrayGetDim Lib "oleaut32.dll" ( _
ByRef psa() As Any) As Long

so:
Private Declare PtrSafe Function SafeArrayGetDim Lib "oleaut32.dll" ( _
ByRef psa() As Any) As Long

Gruß
Nepumuk
Anzeige
AW: Zeilennummer in Array einlesen
19.10.2019 17:39:03
Theo
Hallo,
Oke der Fehler wäre gelöst
Das Makro läuft zwar ab und der ialngIndex zählt hoch, aber es passiert nichts wenn ich die Sub Späterer Zeitpunkt aufrufe .
Was mach denn die Variant "avntTemp" genau ?
AW: Zeilennummer in Array einlesen
19.10.2019 17:41:01
Theo
Hab grad bemerkt ich habe einen anderen Fehler gemacht! Also funktioniert jetzt alles!
Viel Dank!
Gruß,
Theo
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge