Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Datenbank / Globale Variablen

Betrifft: Datenbank / Globale Variablen von: Frank
Geschrieben am: 21.11.2014 12:58:12

Hallo an Alle,

ich möchte mir eine kleine Datenbank anlegen die dessen Daten in jedem Modul zur Verfügung stehen. Dazu rufe ich die Prozedur beim Start der Datei auf. Nun habe ich festgestellt, dass diese Variablen lediglich in dem jeweiligen Modul zur Verfügung stehen. Ist es möglich, dass die Daten überall bzw. immer zur Verfügung stehen?

Ich habe ein Modul angelegt welches sich Daten nennt. Dort habe ich geschrieben:

'Festigkeits- und Formänderungskennwerte für Beton und Leichtbeton nach DIN EN 1992-1-1
Global fck_cyl(1 To 29) As Double
Global fck_cube(1 To 29) As Double

Sub Concrete_Values()
'Zylinderdruckfestigkeit belegen
fck_cyl(1) = -0.0000001 'Pseudobeton
fck_cyl(2) = -12 'LC12/13
fck_cyl(3) = -16 'LC16/18
fck_cyl(4) = -20 'LC20/22
fck_cyl(5) = -25 'LC25/28
fck_cyl(6) = -30 'LC30/33
fck_cyl(7) = -35 'LC35/38
fck_cyl(8) = -40 'LC40/44
fck_cyl(9) = -45 'LC45/45
fck_cyl(10) = -50 'LC50/55
fck_cyl(11) = -55 'LC55/60
fck_cyl(12) = -60 'LC60/66
fck_cyl(13) = -70 'LC70/77
fck_cyl(14) = -80 'LC80/88
fck_cyl(15) = -12 'C12/15
fck_cyl(16) = -16 'C16/20
fck_cyl(17) = -20 'C20/25
fck_cyl(18) = -25 'C25/30
fck_cyl(19) = -30 'C30/37
fck_cyl(20) = -35 'C35/45
fck_cyl(21) = -40 'C40/50
fck_cyl(22) = -45 'C45/55
fck_cyl(23) = -50 'C50/60
fck_cyl(24) = -55 'C55/67
fck_cyl(25) = -60 'C60/75
fck_cyl(26) = -70 'C70/85
fck_cyl(27) = -80 'C80/95
fck_cyl(28) = -90 'C90/105
fck_cyl(29) = -100 'C100/115
End Sub
Nun habe ich ein weiteres Modul angelegt wo ich Functions geschrieben habe. Leider sind die Festigskeitswerte dort nicht verfügbar. Ich hoffe es kann mir jemand helfen.

Vielen Dank und viele Grüße
Frank

  

Betrifft: Public! nicht Global. owT von: Rudi Maintaire
Geschrieben am: 21.11.2014 13:08:18




  

Betrifft: AW: Datenbank / Globale Variablen von: Luschi
Geschrieben am: 21.11.2014 13:41:15

Hallo Frank,

also bei mir funktioniert die Variablen-Definition in Excel 2013 auch mit 'Global' statt des üblichen 'Public'.

Du mußt natürlich die Routine zum Festlegen der Werte auch mal starten, bevor man auf sie zugreift:

Sub MachMal()
    Concrete_Values
    MsgBox fck_cyl(14) '-80
End Sub
Dabei steht die o.g. Prozedur 'MachMal' in einem anderen Modul als 'Concrete_Values'.

Gruß von Luschi
aus klein-Paris



  

Betrifft: AW: Datenbank / Globale Variablen von: Frank
Geschrieben am: 21.11.2014 14:27:14

Hallo Rudi und Luschi,

vielen Dank für eure Antworten. Ich habe gemäß Rudi fck auf Public umgestellt. Beim Ereignis Workbookopen werden die Festigkeiten in das Datenfeld eingelesen und ich sehe Sie auch. Anscheinend sind sie hinterlegt. Ich dachte ich sehe die Daten beim ausführen der Functions, aber das ist nur so, wenn ich das Sub Concrete_values in das Modul meiner UDFs lege. Ansonsten sehe ich das Array nicht beim Ausführen von UDFs (siehe Bild).

Warum ist das so? Ich hatte im Lokalbereich beim Ausführen einer UDF erwartet, dass ich auch das Array fck_cyl sehe.



Vielen Dank und viele Grüße
Frank


 

Beiträge aus den Excel-Beispielen zum Thema "Datenbank / Globale Variablen"