Herbers Excel-Forum - das Archiv
Makro Überprüfung ob schon vorhanden
Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Betrifft: Makro Überprüfung ob schon vorhanden
von: Jürgen
Geschrieben am: 29.12.2006 16:49:10
Hallo Forum
Habe untenstehendes Makro womit ich aus einer Userform Daten ins Datenblatt Objekte kopiere.
Da ich hunderte von Daten damit kopiere kann ich so nicht feststellen ob eine ObjektNr schon vergeben ist.
Ausschlaggebend ist immer die Textbox 94 wo ich eine Objektnr (z.b. 50000) eintrage und diese dann in Spalte A des Datenblatts Objekte kopiert wird.
Meine Frage ist es nun möglich eine Abfrage einzubauen die im Datenblatt die Spalte A vor dem speichern nach unten hin absucht ob die eingegebene Objektnr(Textbox 94)schon existiert, dann Meldung Objekt Nr existiert schon, trotzdem speichern ja/Nein und die aktuelle dann z.b in 50000-1 50000-2 u.s.w automatisch abändert.
Wenn möglich kann mir jemand den Code einbauen???
Bedanke mich
Mfg
Jürgen
Private Sub CommandButton1_Click()
Dim inty As Integer
With ThisWorkbook.Worksheets("Objekte")
inty = 2
Do Until .Cells(inty, 1) = ""
inty = inty + 1
Loop
.Cells(inty, 1) = TextBox94
.Cells(inty, 2) = ComboBox1
.Cells(inty, 3) = TextBox1
.Cells(inty, 4) = TextBox2
.Cells(inty, 5) = TextBox3
.Cells(inty, 6) = TextBox4
.Cells(inty, 7) = TextBox5
.Cells(inty, 8) = TextBox6
.Cells(inty, 9) = TextBox7
.Cells(inty, 10) = TextBox8
.Cells(inty, 11) = TextBox15
.Cells(inty, 12) = TextBox14
.Cells(inty, 13) = ComboBox2
.Cells(inty, 14) = TextBox17
.Cells(inty, 15) = TextBox18
.Cells(inty, 16) = TextBox19
.Cells(inty, 17) = TextBox20
.Cells(inty, 18) = TextBox21
.Cells(inty, 19) = TextBox22
.Cells(inty, 20) = TextBox23
.Cells(inty, 21) = TextBox24
.Cells(inty, 22) = TextBox25
.Cells(inty, 23) = TextBox26
.Cells(inty, 24) = ComboBox26
.Cells(inty, 25) = TextBox95
End With
End Sub
Betrifft: AW: Makro Überprüfung ob schon vorhanden
von: Peter Feustel
Geschrieben am: 29.12.2006 17:48:14
Hallo Jürgen,
hier ein Versuch (weil ungetestet, denn ich kann unmöglich dein UserForm(ular) nachbauen)
Private Sub CommandButton1_Click()
Dim inty As Integer
Dim rZelle As Range
Dim iLfdNr As Integer
Dim bGefunden As Boolean
With ThisWorkbook.Worksheets("Objekte")
inty = 2
Do Until .Cells(inty, 1) = ""
inty = inty + 1
Loop
iLfdNr = 0
Do
GoSub Pruefung
Loop Until bGefunden = False
.Cells(inty, 1) = Textbox94
.Cells(inty, 2) = ComboBox1
.Cells(inty, 3) = TextBox1
.Cells(inty, 4) = TextBox2
.Cells(inty, 5) = TextBox3
.Cells(inty, 6) = TextBox4
.Cells(inty, 7) = TextBox5
.Cells(inty, 8) = TextBox6
.Cells(inty, 9) = TextBox7
.Cells(inty, 10) = TextBox8
.Cells(inty, 11) = TextBox15
.Cells(inty, 12) = TextBox14
.Cells(inty, 13) = ComboBox2
.Cells(inty, 14) = TextBox17
.Cells(inty, 15) = TextBox18
.Cells(inty, 16) = TextBox19
.Cells(inty, 17) = TextBox20
.Cells(inty, 18) = TextBox21
.Cells(inty, 19) = TextBox22
.Cells(inty, 20) = TextBox23
.Cells(inty, 21) = TextBox24
.Cells(inty, 22) = TextBox25
.Cells(inty, 23) = TextBox26
.Cells(inty, 24) = ComboBox26
.Cells(inty, 25) = TextBox95
End With
Exit Sub
Pruefung:
With ThisWorkbook.Worksheets("Objekte").Range("A:A")
Set rZelle = .Find(Textbox94.Value, LookIn:=xlValues, Lookaat:=xlWhole)
If Not rZelle Is Nothing Then
If MsgBox("Die Objekt-Nr existiert schon, trotzdem speichern?", _
vbYesNo + vbQuestion, " nur zur Sicherheit.") = vbYes Then
iLfdNr = iLfdNr + 1
Textbox94.Value = Textbox94.Value & "-" & iLfdNr
bGefunden = True
Else
MsgBox "die Verabreitung wird abgebrochen.", _
48, " Hinweis für " & Application.UserName
Exit Sub
End If
Else
bGefunden = False
End If
End With
Return
End Sub
Code eingefügt mit
Syntaxhighlighter 4.4
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Betrifft: AW: Makro Überprüfung ob schon vorhanden
von: Jürgen
Geschrieben am: 29.12.2006 18:46:04
Hallo Peter
Danke für deine Mühen, habs mal eingebaut gibt aber noch Fehlermeldung aus.
Hab dir mal abgespeckte Version meiner Datei hochgeladen
https://www.herber.de/bbs/user/39250.zip
Gruss
Jürgen
Betrifft: AW: Makro Überprüfung ob schon vorhanden
von: Peter Feustel
Geschrieben am: 29.12.2006 20:33:44
Hallo Jürgen,
ein Schreibfehler (meinerseits)
Set rZelle = .Find(Textbox94.Value, LookIn:=xlValues, Lookaat:=xlWhole)
das muss natürlich Lookat mit nur einem a heißen.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Betrifft: AW: Makro Überprüfung ob schon vorhanden
von: Jürgen
Geschrieben am: 29.12.2006 20:57:49
Hallo Peter
jau jetzt läuft es , hätte ich auch selber drauf kommen können.
Ein Problem besteht aber noch,
wenn zb Objekt Nr 10 schon existiert und ich mit Ja speichern bestätige wird die Nr. 10-1 gespeichert. ist auch richtig so.
Wenn ich jetzt nochmals zb. 10 eingebe und speichere dann kommt dabei raus 10-1-1.
Da es vorkommen kann das ich zb 6 oder 7 oder noch mehrmals die Objekt Nr: 10 behandeln muss sollte dann 10-1 nächste freie 10-2 nächste freie 10-3 u.s.w dabei rauskommen.
Ist da auch was möglich.
Hatte mich wohl nicht verständlich ausgedrückt!!!
Hoffe es jetzt getan zuhaben.
Wenn du da noch was basteln könntest, wäre echt cool.
Gruß und Danke
Jürgen
Betrifft: AW: Makro Überprüfung ob schon vorhanden
von: Peter Feustel
Geschrieben am: 29.12.2006 21:05:35
Hallo Jürgen,
hier eine verbesserte Version, jetzt konnte ich ja testen.
https://www.herber.de/bbs/user/39255.xls
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Betrifft: AW: Makro Überprüfung ob schon vorhanden
von: Jürgen
Geschrieben am: 29.12.2006 21:46:24
Hallo Peter
sieht gut aus, das müsste es gewesen sein
Nochmals Danke und Gruß
Jürgen