Hallo zusammen,
ich hoffe hier ist mein Betrag richtig aber ich bin mit meinem Latein etwas am Ende.
Ich erstelle gerade eine Excel Datei welche mit VBA Codes funktionieren soll. Hierfür sollen über ein Blatt in 8 Spalten diverse Einträge erfolgen und über einen Button kopiere ich diese Einträge in ein zweites Blatt.
Dort wird jeder neue Eintrag untereinander erstellt und dient so als sicherer Speicherort. Jede Zeile ist dort mit einer Nummer am Ende versehen.
Dies funktioniert bisher auch einwandfrei und wunschgemäß.
Da das zweite Blatt jedoch Passwortgeschützt ist (soll keiner versehentlich etwas löschen) aber es dennoch vorkommt dass man hier eine Änderung vornehmen soll, habe ich versucht einen weiteren Code zu schreiben.
Ich will über eine Zelle auf Blatt 1 (C15) die Zeilennummer eintragen können und anschließend kopiert er mir die entsprechende Zeile (bis Spalte H) von Blatt 2 in die vorgesehenen Felder auf Blatt 1 (Zeile 18). Dort will ich die Felder editieren können und anschließend wieder über einen anderen Button zurück auf Blatt 2 kopieren und den Eintrag auf Blatt 1 löschen.
Die Liste wird beruflich von mehreren Personen genutzt. Daher das löschen, kopieren, etc.
Der erste Code für Neueinträge funktioniert ohne Probleme:
Sub Zeile_kopieren()
'Da fehlt was
If Tabelle1.Range("A2").Value = "" Then
MsgBox ("Datumsangabe fehlt")
End If
If Tabelle1.Range("B2").Value = "" Then
MsgBox ("Bearbeiter fehlt")
End If
If Tabelle1.Range("C2").Value = "" Then
MsgBox ("Kordoba ID fehlt")
End If
If Tabelle1.Range("D2").Value = "" Then
MsgBox ("Kundenname fehlt")
End If
If Tabelle1.Range("E2").Value = "" Then
MsgBox ("Name + Ansprechperson andere Bank fehlt")
End If
If Tabelle1.Range("F2").Value = "" Then
MsgBox ("Info über Case-Anlage in Actimize fehlt")
End If
If Tabelle1.Range("G2").Value = "" Then
MsgBox ("Sachverhalt fehlt")
End If
If Tabelle1.Range("H2").Value = "" Then
MsgBox ("Case ID fehlt")
End If
If Tabelle1.Range("A2").Value = "" Then Exit Sub
If Tabelle1.Range("B2").Value = "" Then Exit Sub
If Tabelle1.Range("C2").Value = "" Then Exit Sub
If Tabelle1.Range("D2").Value = "" Then Exit Sub
If Tabelle1.Range("E2").Value = "" Then Exit Sub
If Tabelle1.Range("F2").Value = "" Then Exit Sub
If Tabelle1.Range("G2").Value = "" Then Exit Sub
If Tabelle1.Range("H2").Value = "" Then Exit Sub
'MSG Box
Dim strFrage As String
strFrage = MsgBox("Soll der Eintrag gespeichert werden?" & Space(10), _
vbYesNo + vbQuestion, "Löschen")
If strFrage = vbNo Then Exit Sub
'Bereich kopieren
Sheets("Anrufe anderer Banken").Range("A2:H2").Copy
'einfügen in erste freie Zeile in Log
Sheets("Log").Unprotect ("Zitronensorbet1337")
Sheets("Log").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 8).Value = Sheets("Anrufe anderer Banken").Range("A2:H2").Value
Sheets("Log").Protect ("Zitronensorbet1337")
'Kopiermodus beenden
Application.CutCopyMode = False
'Löschen
ActiveSheet.Unprotect ("Zitronensorbet1337")
Range("A2:H2").ClearContents
ActiveSheet.Protect ("Zitronensorbet1337")
End Sub
Der Zweite Code zum "laden" von Einträgen aufgrund der Suche mit Hilfe der Zeilennummer sowie das anschließende Überschreiben geht überhaupt nicht. Ich scheitere leider schon an der Such und kopier rüber Funktion.
Das waren jetzt meine ersten Versuche aber es klappt nicht...:
Sub AltenEintragladen()
'Da fehlt was
If Tabelle1.Range("C15").Value = "" Then
MsgBox ("Bitte Eintragsnummer erfassen")
End If
If Tabelle1.Range("C15").Value = "" Then Exit Sub
Dim rng As Range
Dim loDeinWert As Long
loDeinWert = ("C15") 'gesuchter Wert
Set rng = Worksheets("Log").Range("I:I").Find(loDeinWert)
If rng Is Nothing Then
MsgBox "Wert " & loDeinWert & " nicht gefunden!"
Else
Set rng = Worksheets("Log").Range("E:E").Find(loDeinWert, LookAt:=xlWhole)
Range("A" & rng.Row & ":E" & "E" & rng.Row).Copy
Worksheets("Anrufe anderer Banken").Range("A18").PasteSpecial Paste:=xlPasteAll
End If
End Sub
Ich würde mich super freuen wenn ihr mir hier helfen könnt bzw. auch einen Code zum zurück kopieren und überschreiben habt (natürlich in die entsprechende richtige Zeile).
Vielen Dank vorab für Eure Hilfe.
Viele Grüße
Belacor96
ich hoffe hier ist mein Betrag richtig aber ich bin mit meinem Latein etwas am Ende.
Ich erstelle gerade eine Excel Datei welche mit VBA Codes funktionieren soll. Hierfür sollen über ein Blatt in 8 Spalten diverse Einträge erfolgen und über einen Button kopiere ich diese Einträge in ein zweites Blatt.
Dort wird jeder neue Eintrag untereinander erstellt und dient so als sicherer Speicherort. Jede Zeile ist dort mit einer Nummer am Ende versehen.
Dies funktioniert bisher auch einwandfrei und wunschgemäß.
Da das zweite Blatt jedoch Passwortgeschützt ist (soll keiner versehentlich etwas löschen) aber es dennoch vorkommt dass man hier eine Änderung vornehmen soll, habe ich versucht einen weiteren Code zu schreiben.
Ich will über eine Zelle auf Blatt 1 (C15) die Zeilennummer eintragen können und anschließend kopiert er mir die entsprechende Zeile (bis Spalte H) von Blatt 2 in die vorgesehenen Felder auf Blatt 1 (Zeile 18). Dort will ich die Felder editieren können und anschließend wieder über einen anderen Button zurück auf Blatt 2 kopieren und den Eintrag auf Blatt 1 löschen.
Die Liste wird beruflich von mehreren Personen genutzt. Daher das löschen, kopieren, etc.
Der erste Code für Neueinträge funktioniert ohne Probleme:
Sub Zeile_kopieren()
'Da fehlt was
If Tabelle1.Range("A2").Value = "" Then
MsgBox ("Datumsangabe fehlt")
End If
If Tabelle1.Range("B2").Value = "" Then
MsgBox ("Bearbeiter fehlt")
End If
If Tabelle1.Range("C2").Value = "" Then
MsgBox ("Kordoba ID fehlt")
End If
If Tabelle1.Range("D2").Value = "" Then
MsgBox ("Kundenname fehlt")
End If
If Tabelle1.Range("E2").Value = "" Then
MsgBox ("Name + Ansprechperson andere Bank fehlt")
End If
If Tabelle1.Range("F2").Value = "" Then
MsgBox ("Info über Case-Anlage in Actimize fehlt")
End If
If Tabelle1.Range("G2").Value = "" Then
MsgBox ("Sachverhalt fehlt")
End If
If Tabelle1.Range("H2").Value = "" Then
MsgBox ("Case ID fehlt")
End If
If Tabelle1.Range("A2").Value = "" Then Exit Sub
If Tabelle1.Range("B2").Value = "" Then Exit Sub
If Tabelle1.Range("C2").Value = "" Then Exit Sub
If Tabelle1.Range("D2").Value = "" Then Exit Sub
If Tabelle1.Range("E2").Value = "" Then Exit Sub
If Tabelle1.Range("F2").Value = "" Then Exit Sub
If Tabelle1.Range("G2").Value = "" Then Exit Sub
If Tabelle1.Range("H2").Value = "" Then Exit Sub
'MSG Box
Dim strFrage As String
strFrage = MsgBox("Soll der Eintrag gespeichert werden?" & Space(10), _
vbYesNo + vbQuestion, "Löschen")
If strFrage = vbNo Then Exit Sub
'Bereich kopieren
Sheets("Anrufe anderer Banken").Range("A2:H2").Copy
'einfügen in erste freie Zeile in Log
Sheets("Log").Unprotect ("Zitronensorbet1337")
Sheets("Log").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 8).Value = Sheets("Anrufe anderer Banken").Range("A2:H2").Value
Sheets("Log").Protect ("Zitronensorbet1337")
'Kopiermodus beenden
Application.CutCopyMode = False
'Löschen
ActiveSheet.Unprotect ("Zitronensorbet1337")
Range("A2:H2").ClearContents
ActiveSheet.Protect ("Zitronensorbet1337")
End Sub
Der Zweite Code zum "laden" von Einträgen aufgrund der Suche mit Hilfe der Zeilennummer sowie das anschließende Überschreiben geht überhaupt nicht. Ich scheitere leider schon an der Such und kopier rüber Funktion.
Das waren jetzt meine ersten Versuche aber es klappt nicht...:
Sub AltenEintragladen()
'Da fehlt was
If Tabelle1.Range("C15").Value = "" Then
MsgBox ("Bitte Eintragsnummer erfassen")
End If
If Tabelle1.Range("C15").Value = "" Then Exit Sub
Dim rng As Range
Dim loDeinWert As Long
loDeinWert = ("C15") 'gesuchter Wert
Set rng = Worksheets("Log").Range("I:I").Find(loDeinWert)
If rng Is Nothing Then
MsgBox "Wert " & loDeinWert & " nicht gefunden!"
Else
Set rng = Worksheets("Log").Range("E:E").Find(loDeinWert, LookAt:=xlWhole)
Range("A" & rng.Row & ":E" & "E" & rng.Row).Copy
Worksheets("Anrufe anderer Banken").Range("A18").PasteSpecial Paste:=xlPasteAll
End If
End Sub
Ich würde mich super freuen wenn ihr mir hier helfen könnt bzw. auch einen Code zum zurück kopieren und überschreiben habt (natürlich in die entsprechende richtige Zeile).
Vielen Dank vorab für Eure Hilfe.
Viele Grüße
Belacor96