Thema Datum  Von Nutzer Rating
Antwort
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
Blau Userform geht in VBA Editor, in Makro nicht
14.01.2017 13:28:16 amicro2000
Solved
14.01.2017 15:11:00 dschuelig
Solved

Ansicht des Beitrags:
Von:
amicro2000
Datum:
14.01.2017 13:28:16
Views:
615
Rating: Antwort:
 Nein
Thema:
Userform geht in VBA Editor, in Makro nicht

Hallo Dschuelig,

probier es mal hiermit:

 

Sub Uhrzeit_start()
    Load UserForm2
    UserForm2.Show
End Sub
    
'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
                With Worksheets(ListBox1.List(i))
                    .Cells(j, 2).Value = .Cells(j - 1, 2).Value + TextBox2.Value / 24 / 3600
                End With
                '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(Worksheets(ListBox1.List(i)).Cells(j, 2).Value)
            'Ende 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
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
Blau Userform geht in VBA Editor, in Makro nicht
14.01.2017 13:28:16 amicro2000
Solved
14.01.2017 15:11:00 dschuelig
Solved