Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

anpassen VBA

Betrifft: anpassen VBA von: Rudolf
Geschrieben am: 30.10.2020 16:08:15

Hallo,

ich weiß nicht ob mein alter Beitrag noch aktiv ist.

Ich habe diesen Code:

Wo baue ich diesen Code in meinen Code ein, das wenn Schreibgeschützt ist, dass excel keine Daten eingibt, auch nicht in der Datei:

Dieser Code habe ich bekommen:

If ActiveWorkbook.ReadOnly Then
MsgBox "Ein Mitarbeiter ist der abgespeicherten Datei aktiv. Bitte später noch einmal _
versuchen"
Exit Sub
ActiveWindow.Close
End If

und da muss er rein:

Private Sub CommandButton1_Click()

  Dim lZeile As Long
  Dim last As Integer, i As Integer
    Dim wks2 As Worksheet
   
    If ListBox1.ListIndex = -1 Then Exit Sub
    
    If Trim(Textbox1.Text) = "" Then
        MsgBox "Sie müssen mindestens einen Namen eingeben!", vbCritical + vbOKOnly, "FEHLER!"
    Else
        
        If existiertMA(Trim(Textbox1.Text)) Then
             If vbYes = MsgBox("Soll der Datensatz überschrieben werden?", vbCritical + vbYesNo, _
 _
 "Vorsicht") Then
             'hier wird ein vorhandener Datensatz überschrieben. Das ist gefährlich wenn nur  _
ein Name als Bedingung dafür notwendig ist.
             'evtl. sollten da mehrere Prüfungen passieren.
                DatensatzInTabelleSchreiben (ListBox1.List(ListBox1.ListIndex, 0))
             End If
        End If
    End If
    
    Application.ScreenUpdating = False
     
     Set wks2 = Worksheets("Eingabe")
     
     Worksheets("Eingabe").Activate
     'wks2.Unprotect "2510"
     
     last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
   
     ActiveSheet.Cells(last, 1).Value = UserForm1.Datum.Value
     ActiveSheet.Cells(last, 3).Value = UserForm1.Zeit.Value
     ActiveSheet.Cells(last, 4).Value = UserForm1.User.Value
     ActiveSheet.Cells(last, 5).Value = UserForm1.Textbox1.Value
     ActiveSheet.Cells(last, 6).Value = UserForm1.TextBox4.Value
     ActiveSheet.Cells(last, 7).Value = UserForm1.ListBox2.Value
     ActiveSheet.Cells(last, 12).Value = UserForm1.ListBox3.Value
     ActiveSheet.Cells(last, 8).Value = UserForm1.Uhrzeitvon.Value
     ActiveSheet.Cells(last, 9).Value = UserForm1.Uhrzeitbis.Value
     ActiveSheet.Cells(last, 10).Value = UserForm1.Pause.Value
   ' wks2.Protect "2510"
    'wks2.Protect "2510"

 
     'wks2.Unprotect "2510"
     
     last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
   
     ActiveSheet.Cells(last, 1).Value = UserForm1.Datum.Value
     ActiveSheet.Cells(last, 3).Value = UserForm1.Zeit.Value
     ActiveSheet.Cells(last, 4).Value = UserForm1.User.Value
     ActiveSheet.Cells(last, 5).Value = UserForm1.Textbox1.Value
     ActiveSheet.Cells(last, 6).Value = UserForm1.TextBox4.Value
     ActiveSheet.Cells(last, 7).Value = UserForm1.ListBox2.Value
     ActiveSheet.Cells(last, 12).Value = UserForm1.ListBox3.Value
     ActiveSheet.Cells(last, 8).Value = UserForm1.Uhrzeitvon.Value
     ActiveSheet.Cells(last, 9).Value = UserForm1.Uhrzeitbis.Value
     ActiveSheet.Cells(last, 10).Value = UserForm1.Pause.Value
If ActiveWorkbook.ReadOnly Then
    MsgBox "Ein Mitarbeiter ist der abgespeicherten Datei aktiv. Bitte später noch einmal  _
versuchen"
    Exit Sub
     ActiveWindow.Close
 End If

ActiveWorkbook.Save

    ActiveWindow.Close
    
    
If Uhrzeitvon.Text = "" Then
MsgBox "Sie haben vergessen die Uhrzeit von einzugeben!"
Uhrzeitvon.SetFocus 'Cursor wieder in die TextBox setzen
Exit Sub
End If
If Uhrzeitbis.Text = "" Then
MsgBox "Sie haben vergessen die Uhrzeit bis einzugeben!"
Uhrzeitbis.SetFocus 'Cursor wieder in die TextBox setzen
Exit Sub
End If
MsgBox " Daten wurden übergeben"

End Sub
Bitte und ich hoffe jemand kann mir helfen

Betrifft: AW: anpassen VBA
von: Werner
Geschrieben am: 30.10.2020 16:10:42

Hallo,

warum machst du einen neuen Beitrag zum gleichen Thema auf?

Du kannst den anderen Beitrag auf offen / ungelöst stellen. (siehe Kontrollkästchen neben der Passworteingabe)

Gruß Werner

Betrifft: AW: anpassen VBA
von: Rudolf
Geschrieben am: 30.10.2020 17:28:17

Hallo Werner,

danke für die Info

Beiträge aus dem Excel-Forum zum Thema "anpassen VBA"