Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1144to1148
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

Übergeben einer Variable (schnell Hilfe bitte)

Übergeben einer Variable (schnell Hilfe bitte)
Maxer
Hallo Forum,
ich habe im meinen Augen ein großen Problem. Ich habe schon sehr viel mir VBA-Programmierung gemacht und konnte bis heute die Übergabe von Variablen vermeiden.
Doch nun ist es soweit. Ich komme nicht drum rum. Mein Problem dreht sich um die Übergabe einer Variable in einen andere Excelmappe. Hier meine aktuelle Vorgehensweise was ich alles per Makro mache:
-ich habe eine Steuerdatei. In dieser Steuerdatei befinden sich viele Pfade von verschiedenen Dateien.
Diese öffne ich nun per Klick auf einen Button nach einander. Hier definiere ich den steuerparameter.
Option Explicit
Public steuerparameter As String
Public Sub Update_selber_starten()
steuerparameter = "ok"
With Sheets("Zentrale")
.Activate
arbeitszeile = 60
anz_dateien = .Range("O7").Value
uf_Importinfo.Show vbModeless
For ii = 1 To anz_dateien
If .Cells(arbeitszeile, 15).Value  Empty Then
Workbooks.Open .Cells(arbeitszeile, 15).Value
-nun öffnet sich die erste Datei und in dieser Datei gibt es zum Anfang diess Makro

Private Sub Workbook_Open
Dim ctrl As CommandBarPopup
Set ctrl = Application.CommandBars.FindControl(ID:=30026) 'ID für Blatt im Menü Format
If ctrl Is Nothing Then Else ctrl.Enabled = False
Set ctrl = Application.CommandBars.FindControl(ID:=30029) 'ID für Blattschutz im Menü Extra
If ctrl Is Nothing Then Else ctrl.Enabled = False
If Sheets("Update").Range("E1").Value = "x" Then Updatelauf
End Sub

- in dem nächsten Makro "Updatelauf" soll nun dieser Parameter abgefragt werden mit dem Makro:
Option Explicit
Option Private Module
Public Sub Updatelauf()
kz2 = "update"
Application.ScreenUpdating = False
With Sheets("Update")
.Activate
If steuerparameter  "ok" Then
If .Range("E1") = "x" Then
z = MsgBox("Ein neues Update ist vorhanden. " & _
vbLf & _
vbLf & _
vbLf & _
vbLf & "Das Plantool wir nun auf den aktuellen Stand gebracht." & _
vbLf & "Klicken Sie bitte auf den OK-Button um das Update zu starten.", vbOKOnly)
If z = vbOK Then
GoTo weiter
Else
Exit Sub
End If
End If
End If
weiter:
Nun noch mal meine Frage. Wie bekomm ich den Wert des Steuerparameter in das andere Makro?
Danke für eure Hilfe.
Gruß Ron


		
AW: Übergeben einer Variable (schnell Hilfe bitte)
11.03.2010 10:12:34
Dirk
funktioniert es nicht wenn du deine Variable Publkizierst?
bsp.
Public i as integer
oder halt als was du sie brauchst
normalerweise kannst du die dann auch in einem anderen makro wieder abfagen
Gruß Dirk
AW: Übergeben einer Variable (schnell Hilfe bitte)
11.03.2010 10:13:44
Luschi
Hallo Ron,
hier mal ein Beispiel dazu: https://www.herber.de/bbs/user/68508.zip
Entpacke die Zip-Datei in einem leeren Ordner und starte Mappe1.xls. In der 'Tabelle1' gibt es ein Button mit der Bezeichnung 'Start'. Wenn Du hier raufklickst, wird die Variable 'steuerParameter" mit dem Wert "ok" belegt und die Mappe2.xls geöffnet. Den Rest siehst Du dann im Vba-Code der Mappe2.xls.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Übergeben einer Variable (schnell Hilfe bitte)
11.03.2010 10:20:29
Maxer
also Luschi danke für dein Beispiel. Ich muss es mir jetzt in Ruhe anschauen wie es funktioniert. Aber so wie es funktioniert hatte ich es mir gedacht. Danke.
Gruß maxer
AW: Übergeben einer Variable (schnell Hilfe bitte)
11.03.2010 11:09:19
Maxer
Hallo Luschi,
ich habe noch 2 Fragen zu deinem Beispiel. 1. Frage muss die Parameterübergabe in der Mappe1 zwingend eine Function sein oder kann es auch eine Public sub sein? 2. Frage. Ist das der einzigste Weg zur Variablenübergabe oder gibt es da noch andere Möglichkeiten (Wissenserweiterung meinserseit :-))
Danke für deine Info.
Gruß Maxer
AW: Übergeben einer Variable (schnell Hilfe bitte)
11.03.2010 11:18:00
Uwe
Hallo Maxer,
besser wäre, die Steuerung nicht über Workbook_Open, sondern ein eigens dafür vorhandenes Makro zu steuern.
Siehe z.B. hier: http://www.ms-office-forum.net/forum/showpost.php?p=1115189&postcount=3
Gruß Uwe
Anzeige
AW: Übergeben einer Variable (schnell Hilfe bitte)
11.03.2010 12:12:04
Luschi
Hallo Ron,
wenn Der Variablenwert von der Mappe2.xls geholt werden soll, dann ist das mit einer Funktion am einfachsten zu machen. Mit einer Prozedur (Sub) ginge es auch, ist aber etwas Komplizierter.
Einen anderen Weg der direkten Variablenübergabe kenne ich nicht. Man könnte es auch noch mit einem definierten Namen machen, den könnte man dann direkt ansprechen und bräuchte keine Funktion oder Prozedur.
Gruß von Luschi
aus klein-Paris
Übergeben einer Variable per Zwischenablage
11.03.2010 21:05:12
Uwe
Hallo Maxer,
da hätte ich auch noch eins.
Steuerdatei:

Public Sub StarteUpdate()
Dim Startparameter As String
Startparameter = "OK"
SchreibeTextInDieZwischenablage Startparameter
Workbooks.Open ThisWorkbook.Path & "\Clientdatei.xls"
End Sub
'benötigt einen Verweis auf die
'Microsoft Forms 2.0 Objektlibrary
'(einfach eine Userform einfügen und dann wieder entfernen)
Private Sub SchreibeTextInDieZwischenablage(sText As String)
Dim oData As New DataObject
With oData
.SetText sText
.PutInClipboard
End With
End Sub
Clientdatei:

Private Sub Workbook_Open()
Dim Startparameter As String
Startparameter = HoleTextVonZwischenablage
If Len(Startparameter) Then
MsgBox Startparameter
End If
End Sub
'benötigt einen Verweis auf die
'Microsoft Forms 2.0 Objektlibrary
'(einfach eine Userform einfügen und dann wieder entfernen)
Private Function HoleTextVonZwischenablage() As String
Dim oData As New DataObject
On Error Resume Next ' Brutal um falsche Formate abzuwürgen, gibt dann einen Leerstring
oData.GetFromClipboard
HoleTextVonZwischenablage = oData.GetText
End Function

https://www.herber.de/bbs/user/68522.zip
Gruß Uwe
Anzeige
AW: Übergeben einer Variable per Zwischenablage
11.03.2010 22:50:52
maxer
Also an euch alle vielen Dank für die Hilfe. ich werde mir in den nächsten Tagen die Infos genauer anschauen. Und noch mal fragen wenn ich was wissen möchte.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige