Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1532to1536
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
Globale Variable einer Zelle zuweisen
11.01.2017 15:42:37
Dominik
Hallo,
folgendes Problem:

Public Daten_beginnen_in_Zeile As Integer
Sub variablen_initialisieren()
Daten_beginnen_in_Zeile = Sheets(data_admin).Cells(1, 1)
End Sub

ich möchte die globale Variable "Daten_beginnen_in_Zeile" nutzen, um bei allen verfügbaren _
Datenblättern bestimmte Zeilen für Kommentare und anderes übrig zu haben. Diese Werte sollen in _
dem sheet 'data_admin' über folgende Maske abgespeichert werden

Private Sub UserForm_Initialize()
begin_with_columns_text.Text = Daten_beginnen_in_Zeile
End Sub
Private Sub begin_with_columns_setbutton_Click()
If Trim(CStr(begin_with_columns_text.Text))  Int(begin_with_columns_text.Text) Then
MsgBox "Eine Zahl eingeben", vbCritical + vbOKOnly, "FEHLER!"
Exit Sub
End If
If Trim(CStr(begin_with_columns_text.Text)) 

Nun bekomme ich einen ersten fehler bei der Initialisierung.
Und einen zweiten bei meiner Eingabemaske, wenn ich Buchstaben, nicht Zahlen eingebe.
Any ideas?`
Lieben Gruß

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

Betreff
Datum
Anwender
Anzeige
AW: Globale Variable einer Zelle zuweisen
11.01.2017 17:29:57
GraFri
Hallo
Ist eine etwas ungewöhnliche Variablendekleration.
So sollte es funktionieren:

Sub variablen_initialisieren()
Daten_beginnen_in_Zeile = Worksheets("data_admin").Cells(1, 1).Value
End Sub
Bei der Eingabemaske vergleichst du Text mit Zahl?
mfg, GraFri
AW: Globale Variable einer Zelle zuweisen
11.01.2017 17:55:31
Dominik
Für deine Lösung bekomme ich einen Laufzeitfehler 9 "außerhalb des gültigen Bereichs" bei "data_admin" und ohne die "" einen Laufzeitfehler 13 "Typen unverträglich". [(Name) ist data_admin & der angezeigte Name ist "Daten Administration".
Ich versuche das in einem Modul "global_variables":
Public Daten_beginnen_in_Zeile As Integer
Sub variablen_initialisieren()
Daten_beginnen_in_Zeile = Worksheets(data_admin).Cells(1, 1).Value
End Sub
Das hinter dem = in einen CInt() zu packen hat auch nicht funktioniert.
Ich hab bereits verschiedene Datentypen getestet (String, Variant..). bin etwas ratlos...
(eigentlich liegt in der Eingabemaske ja ein String vor, den ich zu einem int konvertieren will?)
Anzeige
AW: Globale Variable einer Zelle zuweisen
12.01.2017 07:03:57
GraFri
Hallo Dominik
Besser ist vielleicht, nur Zahleneingabe zuzulassen. Dann ersparst du dir die Überprüfung.
Würde dir auch raten, nicht so lange Bezeichnungen für Controls bzw. Variablen zu nehmen. Der Code ist dadurch schwerer lesbar. Ich verwende gerne für Controls z.b. Tetxtbox txtVorname, Buttons
cmdAbbrechen. Für Variable z.B. xDatum, oVorname etc.

' Code in Userform
Option Explicit
Private Sub UserForm_Initialize()
' Variable einlesen
Call global_variables.variablen_initialisieren
' In Textbox einfügen
begin_with_columns_text.Text = Daten_beginnen_in_Zeile
End Sub
' In der Textbox 'begin_with_columns_text' nur Zahlen zulassen
Private Sub begin_with_columns_text_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57
Case Else: KeyAscii = 0
End Select
End Sub
' beim verlassen prüfen, ob Zahl größer 0 ist
Private Sub begin_with_columns_text_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Daten_beginnen_in_Zeile = begin_with_columns_text.Value
If Daten_beginnen_in_Zeile 

mfg, GraFri
Anzeige
AW: Globale Variable einer Zelle zuweisen
12.01.2017 08:46:06
Dominik
Hey, das sieht schon viel besser aus und einige Kniffe gelernt habe ich auch.
Leider bekomme ich weiterhin im Modul global_variables einen Laufzeitfehler.
Entweder
Laufzeitfehler 9: Index außerhalb des gültigen Bereichs für [ThisWorkbook.Worksheets("data_admin").Cells(1, 1)]
Oder
Laufzeitfehler 13: Typen unverträglich für [With ThisWorkbook.Worksheets(data_admin).Cells(1, 1)]
In den Microsoft-Excel Objekten steht data_admin (Daten Administration) als die Tabelle, die die Admin-variablen aufnehmen soll.
Der Code:
Option Explicit
Public Daten_beginnen_in_Zeile As Integer
Sub variablen_initialisieren()
With ThisWorkbook.Worksheets("data_admin").Cells(1, 1)
If IsNumeric(.Value) Then
Daten_beginnen_in_Zeile = .Value
Else
Daten_beginnen_in_Zeile = 0
MsgBox "Keine Zahl in der Zelle, manuelle Korrektur erforderlich"
End If
End With
End Sub

Anzeige
AW: Globale Variable einer Zelle zuweisen
12.01.2017 13:00:25
GraFri
Hallo Dominik
Keine Ahnung, was du mit
In den Microsoft-Excel Objekten steht data_admin (Daten Administration) als die Tabelle, die die Admin-variablen aufnehmen soll.

meinst.
Habe Version 2010. Wo soll das stehen? Was ist das? Wo finde ich das? Bin etwas verwirrt.
Ich war der Meinung, das es sich bei 'data_admin' um ein Excel Tabellblatt handelt.
mfg, GraFri
AW: Globale Variable einer Zelle zuweisen
12.01.2017 13:36:45
Dominik
ja, genau
Userbild
AW: Globale Variable einer Zelle zuweisen
12.01.2017 15:38:03
Dominik
Ich habe eine Lösung gefunden:
Sub variablen_initialisieren()
With data_admin.Cells(1, 1)
If IsNumeric(.Value) Then
Daten_beginnen_in_Zeile = .Value
Else
Daten_beginnen_in_Zeile = 0
MsgBox "Keine Zahl in der Zelle, manuelle Korrektur erforderlich"
End If
End With
End Sub

Anzeige
AW: Globale Variable einer Zelle zuweisen
12.01.2017 15:53:31
GraFri
Hallo Dominik
Habe ich unter Excel 2010 nicht bzw. nicht aktiviert. Versuch mal, dieses Objekt mit "Daten Administration" anzusprechen. Sonst fällt mir leider nichts anderes mehr ein.

' Modul 'global_variables'
Option Explicit
Public Daten_beginnen_in_Zeile As Integer
Sub variablen_initialisieren()
' Name der Tabelle aus der die Variable geholt wird ist "data_admin"
With ThisWorkbook.Worksheets("Daten Administration").Cells(1, 1)
If IsNumeric(.Value) Then
Daten_beginnen_in_Zeile = .Value
Else
Daten_beginnen_in_Zeile = 0
MsgBox "Keine Zahl in dedr Zelle A1"
End If
End With
End Sub
mfg GraFri
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige