Thema Datum  Von Nutzer Rating
Antwort
Rot Userform geht in VBA Editor, in Makro nicht
13.01.2017 17:36:34 dschuelig
*****
Solved
13.01.2017 17:51:48 Crazy Tom
NotSolved
13.01.2017 18:06:46 dschuelig
NotSolved
13.01.2017 17:53:51 Gast1124
NotSolved
13.01.2017 18:07:33 dschuelig
NotSolved
13.01.2017 18:20:18 Mackie
****
NotSolved
13.01.2017 18:43:26 dschuelig
NotSolved
13.01.2017 18:57:52 Mackie
**
NotSolved
13.01.2017 19:21:32 dschuelig
NotSolved
13.01.2017 21:11:22 Mackie
NotSolved
14.01.2017 12:39:10 dschuelig
NotSolved
14.01.2017 13:28:16 amicro2000
Solved
14.01.2017 15:11:00 dschuelig
Solved

Ansicht des Beitrags:
Von:
dschuelig
Datum:
13.01.2017 17:36:34
Views:
1169
Rating: Antwort:
 Nein
Thema:
Userform geht in VBA Editor, in Makro nicht

Halo allerseits,

ich habe folgendes Problem:

Ich habe ein Userform geschrieben (mit hilfe von euch) das Tabellenblätter durchgeht, die Namen der Tabelleblätter listet usw..., starte ich "Userform ausführen" im VBA-Editor aus dem Code-Modul funktioniert alles Prima.

Dann bin ich hingegangen habe ein Makro wie folgt geschrieben:

Sub Uhrzeit_start()
    Load Userform2
    UserForm2.Show
End Sub

Anschließend habe ich ein Symbol auf einem nicht für die Funktionen benötigten Tabellenblatt erstellt und das oben angezeigt Makro zugewiesen.

Wenn ich dann das Makro ausführe, wird die Userform angezeigt, die vorhandenen Tabellenblätter in der Listbox aufgeführt und ein Teil der in der Userform geschriebenen Befehle ausgeführt, allerding ein anderer Teil nicht. Ich bin ziemlich Ratlos und hoffe ihr könnt mir helfen. Anbei noch der Code aus der Userform.

'Userform2 für die Änderung der Uhrzeit
'Damit beim Start der Userform direkt alle vorhandenen Tabellenblätter angezeigt werden wird mit Excel-Bordmittel Initialize gestartet
Private Sub UserForm_Initialize()

'Variablendeklaration
Dim i As Single

'Schleife, er soll alle Tabellenblätter zählen, Schrittweite 1
For i = 1 To Worksheets.Count

'Die gezählten Tabellenblätter sollen in der in der Userform, in der Listbox namentlich aufgelistet werden
     With ListBox1
          .AddItem Worksheets(i).Name
     End With
     
'Nächstes Tabellenblatt soll ausgelesen und in die Listbox geschrieben werden
Next i

'Ende der Befehlsreihe die beim Öffnen ausgeführt werden soll
End Sub
 
'Makro für das gleichsetzen der Uhrzeit auf jedem ausgewählten Tabellenblatt beim klicken des Buttons Uhrzeit setzen
Private Sub CommandButton1_Click()

'Variablendeklaration
Dim i As Single
Dim j As Long


'Bedingung dass in Beiden Textboxen ein Wert drin stehen muss ansonsten soll er die Msgbox zeigen und das Makro beenden
If TextBox1.Value = "" Or TextBox2.Value = "" Then
    MsgBox ("Sie müssen in eine Uhrzeit und ein Intervall eingeben")
    Exit Sub
    
'Beendet die Bedingung
End If
 
'Schleife, um die Startzeit in jedem ausgewählten Tabellenblatt zu setzen
'-1 habe ich Internet gefunden, ohne -1 erkennt er die selected Anweisung nicht
For i = 0 To ListBox1.ListCount - 1

'Wenn-Dann Bedingung, dass er alle in der Listbox1 ausgewählten Namen auswählt und dann
    If ListBox1.Selected(i) Then

'in die Tabellenblätter -deren Namen in der Listbox ausgewählt sind- in die Zelle B23 (ist immer Gleich, da die Drucklogger von einem Hersteller auf einer Software basieren)
'den Wert der in Textbox1 steht geschrieben wird. Formatierungsforgabe hh:mm:ss hat hierdrin nicht funktioniert, deshalb ist die Textbox beschriftet
       Worksheets(ListBox1.List(i)).Range("B23").Value = TextBox1.Text
       
'Ende der Wenn-Dann Bedingung
    End If
    
'Schleifenrhytmus (1. Schleife), nächstes Tabellenblatt
Next i

'Schleife um die nachfolgenden Uhrzeit um den Intervall zu erhöhen
For i = 0 To ListBox1.ListCount - 1

'Wenn-Dann Bedingung, dass er alle in der Listbox1 ausgewählten Namen auswählt und dann
If ListBox1.Selected(i) Then

'Startwert Zelle 24
j = 24

'Schleife für das ablaufen der Intervalladdition
Do

'in die Tabellenblätter -deren Namen in der Listbox ausgewählt sind- den Intervall zur Startzeit hinzurechnen beginnend bei Zelle 24, dann schau was in Zelle 23 ist und addiere
'den Wert der zweiten Textbox hinzu. /24/3600 ist die Umrechnung zur addition von sekunden
Worksheets(ListBox1.List(i)).Cells(j, 2).Value = Cells(j - 1, 2).Value + TextBox2.Value / 24 / 3600

'Schleifenrhytmus, nach jeder Addition in die nächste Zelle springen
j = j + 1

'Die Schleife endet sobald eine leere Zelle vorhanden ist.
Loop Until IsEmpty(Cells(j, 2).Value)

'Ender der Wenn-Dann Bedingung
End If

'nächstes Tabellenblatt
Next i

'Schliessen der Userform
Unload Me

'Beenden des Makros
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Userform geht in VBA Editor, in Makro nicht
13.01.2017 17:36:34 dschuelig
*****
Solved
13.01.2017 17:51:48 Crazy Tom
NotSolved
13.01.2017 18:06:46 dschuelig
NotSolved
13.01.2017 17:53:51 Gast1124
NotSolved
13.01.2017 18:07:33 dschuelig
NotSolved
13.01.2017 18:20:18 Mackie
****
NotSolved
13.01.2017 18:43:26 dschuelig
NotSolved
13.01.2017 18:57:52 Mackie
**
NotSolved
13.01.2017 19:21:32 dschuelig
NotSolved
13.01.2017 21:11:22 Mackie
NotSolved
14.01.2017 12:39:10 dschuelig
NotSolved
14.01.2017 13:28:16 amicro2000
Solved
14.01.2017 15:11:00 dschuelig
Solved