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

Globale Variable wird nicht übernommen

Globale Variable wird nicht übernommen
01.04.2021 17:46:04
PhilipMcn
Hallo Zusammen,
ich habe eine globale Variable definiert, welche die nächste freie Zeile in einer Spalte ermittelt und als Integer ausgibt. Wenn ich diese Variable aber in einem Makro verwenden will (Ein Wert soll in diese Zeile geschrieben werden), bekomme ich eine Fehlermeldung und die Variable wird als = 0 angezeigt.
Wenn ich die Variable aber in einer Zelle ausgebe, steht dort die korrekte Zahl, und wenn ich im Makro anstelle der globalen Variable eine neue Variable einfüge, welche dem Wert der Zelle entspricht, funktioniert alles wunderbar. Was habe ich hier übersehen?

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Globale Variable wird nicht übernommen
01.04.2021 17:47:57
Hajo_Zi
frage jemand der neben Dir sitzt der sieht die Datei.
Die meisten hier sehen Sie nicht.
Da Sie nicht auf Deinen Rechner schauen.
Vielleicht sollte die Datei verlinkt werden?
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten ändern. Schaue Datei
http://hajo-excel.de/gepackt/fremd/Datei_verschluesseln.zip
Das ist nur meine Meinung zu dem Thema.
Bild
Homepage

Anzeige
AW: Globale Variable wird nicht übernommen
01.04.2021 18:01:40
Hajo:Zi
Dim i As Long
Sub NächstefreieZeile()
Gruß Hajo

AW: Globale Variable wird nicht übernommen
01.04.2021 18:06:24
PhilipMcn
Du meinst so?
Global NFZ As Integer
Dim i As Long
Sub NächstefreieZeile()
Dim i As Long
Dim NFZ As Integer
i = 1
Do Until i = 105
If Range("Tabelle1!A" & i).Value = "" Then
NFZ = i
Exit Do
Else
i = i + 1
End If
Loop
Range("Tabelle1!C1").Value = NFZ
End Sub
Sub zeileschreiben()
Range("Tabelle1!A" & NFZ).Value = "test"
Call NächstefreieZeile
End Sub


Anzeige
AW: Globale Variable wird nicht übernommen
01.04.2021 18:18:04
Nepumuk
Hallo Philip,
so:
Option Explicit
Public NFZ As Long
Sub NächstefreieZeile()
With Tabelle1
NFZ = .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Row
.Range("C1").Value = NFZ
End With
End Sub
Sub zeileschreiben()
Range("Tabelle1!A" & NFZ).Value = "test"
Call NächstefreieZeile
End Sub

Gruß
Nepumuk

AW: Globale Variable wird nicht übernommen
02.04.2021 11:43:03
Daniel
Hi
Du darfst die globale Variabel nicht nochmal im Makro deklarieren.
Wenn du das machst, entsteht im Makro eine neue Variable, die zwar den gleichen Namen hat, aber eigenständig ist und im Makro anstelle der globalen Variablen verwendet wird.
Gruß Daniel

Anzeige
AW: Globale Variable wird nicht übernommen
02.04.2021 15:27:02
PhilipMcn
OK, das macht Sinn, danke Daniel und die anderen!

AW: Globale Variable wird nicht übernommen
01.04.2021 17:56:26
Nepumuk
Hallo Philip,
hast du versehentlich die Variable auch in der Prozedur deklariert?
Gruß
Nepumuk

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige