Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1660to1664
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
Laden von userform unterbinden
01.12.2018 20:45:52
userform
Hallo euch allen!
Habe folgendes Problem:
ich habe ein kleines Tool geschrieben bestehend aus zwei Excel Mappen.
Ich habe alles so programmiert das der Anwender später nur die Userform zu Gesicht bekommt und die Excel Mappe an sich komplett verborgen ist damit der Endanwender später (nicht ich) nicht versehentlich irgendwas verschiebt und dann mein Code nicht mehr funktioniert.
Kurze Erklärung zur funktionsweise:
Endwanwender1 öffnet Mappe1 die eine Userform ist, die beim öffnen automatisch gestartet wird, in der man Daten eingeben kann und diese werden dann in Mappe2 übertragen und dort gespeichert.
In Mappe2 befindet sich auch eine Userform (diese wird auch beim öffnen der Mappe automatisch gestartet) die dann Endanwender2 erlaubt die Daten auszulesen und weiter zu verarbeiten.
Nun zu meinem Problem:
Gezwungenermaßen muss Mappe1 während sie die Daten überträgt natürlich Mappe2 im Hintergrund öffnen.
Da allerdings in Mappe2 die Userform im "autostart" drin ist öffnet sich diese jedesmal wenn Endanwender1 Daten einspeichert.
Gibt es eine Möglichkeit dies zum umgehen?
Ich bin schon auf die Idee gekommen eine dritte Datei ohne vba zu erstellen in die dann Mappe1 schreibt und Mappe2 die Daten raus holt allerdings hieße das, dass ich Mappe2 komplett umschreiben müsste.
Mir wäre es arg lieb wenn es da eine andere Lösung gäbe, mit der ich zum Beispiel beim einfügen der Daten das Ausführen von vba in Mappe2 unterbinden könnte.
Danke schonmal im vorraus für eure Tipps!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laden von userform unterbinden
01.12.2018 21:37:01
userform
Hallo Sandro L,
ich mache das immer so:
- in Mappe1.xlsm setze ich eine Boolsche Variable auf 'False'
- dann öffne ich Mappe2.xlsm
- im Autostart-Mmakro dieser Mappe starte ich per Application.Run ein Makro,
  daß den Wert dieser Variablen aus Mappe1.xlsm abholt
- und erst dann wird im True-Fall die Userform geöffnet oder eben nicht.
Gruß von Luschi
aus klein-Paris
AW: Laden von userform unterbinden
02.12.2018 00:22:58
userform
Hallo Luschi,
erstmal danke für den tipp, leider komme ich heute abend nicht mehr dazu ihn zu testen werde ihn aber morgen mal versuchen.
Allerdings weiß ich noch nicht wirklich wie der code aussehen soll in Mappe2 könntest du mir ein Beispiel zeigen?
Außerdem wenn ich nur mappe2 öffne soll sich ja die userform öffnen, wenn ich da ne abfrage nach dem bool wert aus mappe1 habe der ja false ist wird er doch die userform nicht laden oder?
Danke für deine Hilfe!
Anzeige
AW: Laden von userform unterbinden
02.12.2018 06:26:55
userform
Hallo Sandro L,
auch das ist kein Problem (Mappe2 alleine öffnen)
- in Autostart noch eine Prüfung, ob Mappe2 geöffnet ist
- wenn mein, Userform öffnen
- wenn ja, mit Application.Run Wert der Variablen aus Mappe1.xlsm abfragen
- und dann je nach Wert Userform öffnen ja oder nein
Mache ein einfaches Beispiel mit den beiden Mappen und ich helfe Dir gern.
Gruß von Luschi
aus klein-Paris
AW: Laden von userform unterbinden
02.12.2018 06:32:50
userform
Hallo Sandro L,
auch das ist kein Problem (Mappe2 allein zu Haus)
- in Autostart von Mappe2.xlsm eine zusätzliche Abfrage, ob Mappe1-xlsm geoffnet ist
- wenn nein: Userform öffnen
- wenn ja, mit Application.Run Wert der gesetzten #Variable aus Mappe1.xlsm holen
- und dann bei False Userform nicht öffnen
  oder bei True Userform öffnen
Mache ein einfachstes Beispiel mit den beiden Mappen und der Userform in Mappe2.xlsm.
Dann helfe ich gern weiter.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Laden von userform unterbinden
02.12.2018 12:48:22
userform
Hallo Luschi,
vielen Dank dein Tipp mit der Boolschen Variablen hat mich auf den richtigen Weg gebracht :)
Habe in Mappe2 in die Sub Workbook_open einfach ne überprüfung eingebaut ob Mappe1 offen ist und wenn dies der Fall ist keine Userform zu laden. Klappt jetzt super und man kann mit Mappe1 Daten in Mappe2 einfügen ohne dass Mappe2 Ihre Userform startet.
Außerdem habe ich die Boolsche Variable direkt in Mappe2 eingebaut womit ich nichts an Mappe1 ändern musste :)
Hier noch der Code den ich jetzt drin habe für andere suchende :)

Option Explicit
Private Sub Workbook_Open()
Dim sPfad As String
sPfad = ThisWorkbook.Path & "\Mappe1.xlsm" ' Diesen Pfad anpassen!
If DateiGeoeffnet(sPfad) = False Then
Application.WindowState = xlMinimized
Application.Visible = False
With frmMaske
.MultiPage1.Value = 0 'Multipage Seite 1 gewählt
.Show
End With
End If
End Sub
Private Function DateiGeoeffnet(DerPfad As String) As Boolean
On Error Resume Next
Open DerPfad For Binary Access Read Lock Read As #1
Close #1
If Err.Number  0 Then
DateiGeoeffnet = True
Err.Clear
End If
End Function
Vielen Dank nochmal! Dieses ist ein super Forum und bisher habe ich zu jeder meiner Fragen einen sehr guten Lösungsansatz bekommen!
Wünsche euch allen noch einen schönen Sonntag!
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige