Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1440to1444
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
Inhaltsverzeichnis

Globale Variable

Globale Variable
12.08.2015 17:12:09
Sven
Hallo,
ich habe folgende Problematik und stehe auf dem Schlauch:
Ich möchte aus sämtlichen (Public) Sub's in meinem Projekt, einen Zähler für einen Status setzen - 1 für in Arbeit, 2 für freigegeben. Das soll dann über eine Funktion den entsprechenden Text in eine bestimmte Zelle schreiben. Ich habe es erst mit einer globalen Variablen versucht, die ich der Funktion übergeben habe, aber die Funktion wird nicht angesprochen. Wenn ich die Funktion direkt ansprechen, bekomme ich die Rückmeldung, dass ein Objekt erforderlich ist.
IPVersion möchte ich in den SUBs als Zähler für den Status verwenden.
Function IPversion()
If IPversion = 0 Then
Sheets(Tab1).range("B2").Value = "in Arbeit"
ElseIf IPversion = 1 Then
Sheets(Tab1).range("B2").Value = "freigegeben"
End If
End Function

Gruß
Sven

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

Betreff
Datum
Anwender
Anzeige
AW: Globale Variable
13.08.2015 14:33:06
Michael
Hi Sven,
was Du da zeigst, ist *keine* Funktion, denn eine Funktion ist dadurch definiert, daß sie einen Wert zurückgibt.
Function ausgabe() As String
ausgabe = "Hello World!"
End Function
Sub fct_aufrufen()
MsgBox ausgabe
End Sub
Globale Variablen funktionieren grundsätzlich, aber sie "speichern" Werte nicht über das Schließen und erneute Öffnen der Datei hinweg.
Der einfachste Weg (mit "Basiskenntnissen") ist, ein (evtl. verstecktes) Blatt zu reservieren und die Infos dorthin zu schreiben.
Ich habe Dein Programm mal verallgemeinert; das gehört in ein Modul:
Option Explicit
Public Sub WerteSchreiben(ByVal Tab1 As Long, ByVal IPversion As Long, ByVal Adresse As String)
If IPversion = 0 Then
Sheets(Tab1).Range(Adresse).Value = "in Arbeit"
ElseIf IPversion = 1 Then
Sheets(Tab1).Range(Adresse).Value = "freigegeben"
End If
End Sub
Sub Sub_aufrufen()
Call WerteSchreiben(1, 1, "B2")
End Sub

Die Zeile mit dem Call kannst Du in jeder beliebigen Sub verwenden.
Schöne Grüße,
Michael

Anzeige
AW: Globale Variable
14.08.2015 10:28:39
Sven
Hi Michael,
perfekt, klappt super!! Danke!
Mich interessiert aber mal, wie es der Profi gemacht hätte, wenn ich nicht über den Umweg einer zusätzlichen Tabelle gegangen wäre - ich will ja auch dazu lernen ;).
Grüße
Sven

man lernt nie aus
14.08.2015 13:02:49
Michael
Hi Sven,
ich nehme mir immer vor, interessante Threads gleich zu speichern, mache es dann aber doch nie.
Erst vor ein paar Tagen ging es um ein ähnliches Thema, aber ich kann mich nur noch erinnern, daß es um ein Add-In ging.
Na, gefunden habe ich auf die Schnelle:
https://www.herber.de/forum/archiv/480to484/480069_Kann_man_Arrayinhalte_dauerhaft_speichern.html
insbesondere die Beiträge unten von andre (allg, eben auch add-in) und insbesondere Nepomuk.
Gugel mal: excel vba variablen dauerhaft speichern
Genau, registry geht natürlich auch, oder eine externe Textdatei (á la .ini) oder oder
Schöne Grüße,
Michael

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige