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

Nochmalige Hilfe

Betrifft: Nochmalige Hilfe von: Rudolf
Geschrieben am: 05.11.2020 16:08:44

Hallo zusammen,

ich habe diesen Code hier, jetzt möchte ich, wenn eine Datei schreibgeschützt ( "Z:\r\Allgemein\A\U\U ALLE.xlsx", _) ist, die Meldung kommt, " Bitte später nochmal eingeben"

Jetzt darf Excel in keiner der beiden Dateien was eintragen. Wäre sowas möglich?

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"
         Workbooks.Open Filename:= _
        "Z:\r\Allgemein\A\U\U ALLE.xlsx", _
        UpdateLinks:=0
     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

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 übermittelt !!!"

End Sub

Betrifft: If ReadOnly...
von: ChrisL
Geschrieben am: 05.11.2020 17:58:15

Hi

Etwa so...

Nach Workbook.Open einsetzen:
If ActiveWorkbook.ReadOnly Then
msgbox "blabla"
ActiveWorkbook.Close
Exit Sub
End If
cu
Chris

Betrifft: AW: If ReadOnly...
von: Rudolf
Geschrieben am: 05.11.2020 18:29:11

He,

wie genau muss ich es eingeben ?

Betrifft: AW: If ReadOnly...
von: ChrisL
Geschrieben am: 06.11.2020 11:38:41

Hi

Copy/Paste.

Wo?
Wie erwähnt, nach der Code-Zeile Workbooks.Open

cu
Chris

Betrifft: AW: If ReadOnly...
von: Rudolf
Geschrieben am: 06.11.2020 12:33:56

Hallo Chris,

ich habe es in dieser Arbeitsmappe eingegeben:

Private Sub Workbook_Open()
If ActiveWorkbook.ReadOnly Then
  MsgBox "blabla"
  ActiveWorkbook.Close
  Exit Sub
  End If
End Sub

trotzdem wird es in dem aktuellen Datei eingegeben.

Betrifft: echt jetzt?
von: ChrisL
Geschrieben am: 06.11.2020 13:18:07

Du möchtest einen bestehenden Code erweitern. Ich habe schon 2x erwähnt, wo die Ergänzung im bestehenden Code vorzunehmen ist.

Betrifft: AW: echt jetzt?
von: Rudolf
Geschrieben am: 06.11.2020 20:39:09

Sorry aber ich bin nicht so der vba freak


Ich habe es getestet aber leider ohne Erfolg

Betrifft: AW: If ReadOnly...
von: Rudolf
Geschrieben am: 06.11.2020 20:43:12

Das Problem ist, das er trotzdem beim dem tabellenblatt einträgt. Ich will aber das er in beider nichts einträgt

Betrifft: AW: Nochmalige Hilfe
von: Rudolf
Geschrieben am: 05.11.2020 21:01:39

HAllo Chris,

in Workbook.open habe ich schon UserForm1.show drin.

Die abfrage muss erst sein ist die Datei "Z:\r\Allgemein\A\U\U ALLE.xlsx", schreibgeschützt, wenn ja, dann Programm beenden und später versuchen wenn ja, dann daten werden eingeben und im aktiven Blatt auch.

Ich hoffe du kannst mir nochmal helfen