Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1136to1140
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hilfe beim Code Datenpflege

Hilfe beim Code Datenpflege
amintire
Guten Abend alle zusammen,
erst mal vielen Dank an alle die mir bis jetzt geholfen haben und dann auch immer so schnell.
Durch die ganzen Code Erneuerungen/Verknüpfungen funktioniert mein kompletter Code nicht mehr...
https://www.herber.de/bbs/user/67995.xls
Bei der Beispieldatei wird ein Objekt nicht gefunden wenn man bei der UserForm auf speichern klickt.
Vielleicht hat ja wer eine Lösung um die späte Zeit ;)
Vielen Dank.
Gruß Amina
AW: Hilfe beim Code Datenpflege
14.02.2010 00:20:00
Peter
Hallo Amina
Textbox5 & Textbox6 sind nun Combobox2 / 3
For j = 1 To 32
.Cells(i, j + 1) = Me.Controls("TextBox" & j) 'und ab "j=5" kommt dann der Fehler
Next
Gruß
Peter
AW: Hilfe beim Code Datenpflege
14.02.2010 08:14:45
amintire
Hallo Peter,
wo genau schaust du da nach ab wann der Fehler auftretet?
Und was genau soll ich jetzt ändern damit der Code funktioniert?
Gruß Amina
AW: Hilfe beim Code Datenpflege
14.02.2010 08:34:18
Hajo_Zi
Hallo Amina,
was Peter zum Ausdruck bringen wollte es gibt kein Steuerelement "Textbox5"

im Code ...
14.02.2010 08:40:37
Matthias
Hallo Amina
Im ProgrammCode sieht man das
Userbild
Excel markiert die Zeile mit dem Fehler. Wenn Du nun mit der Maus über eine Variable fährst,
siehst Du den aktuellen Inhalt der Variablen.
Da es in Deinem Formular keine Textbox5 gibt bekommst Du einen Fehler.
Textbox6 gibt es übrigens auch nicht!
Du hast anscheinend TextBox5 und Textbox6 gelöscht und dann an deren Stelle je eine Combobox eingepflegt.
Nun will Excel in die Zelle [ .Cells(i, j + 1) ] den Wert aus Textbox5 schreiben und diese
Textbox5 gibt es nicht.
Gruß Matthias
Anzeige
AW: Hilfe beim Code Datenpflege
14.02.2010 08:46:49
Christian
Hallo Amina,
teile die Schleife auf in 2 Schleifen (von 1 bis 4 und von 7 bis 32).
Des Weiteren musst du dann die Einträge der ComboBox2 und ~3 in die Spalten 6 und 7 schreiben analog zu:
.Cells(i, 1) = Me.ComboBox1
Gruß
Christian
AW: Hilfe beim Code Datenpflege
14.02.2010 09:19:43
amintire
Hallo alle zusammen,
danke für die Informationen, habe jetzt 2 Textboxe hinzugefügt und die entsprechend benannt.
Die wurden wirklich gegen zwei ComboBoxe ersetzt gewesen ;)
Danke für die nette Unterstützung ;)
Gruß Amina
AW: Hilfe beim Code Datenpflege
14.02.2010 08:55:44
Hajo_Zi
Hallo amibitire,
eleganter löst man es durch den Einsatz der Tag Eigenschaft. Schreib bei Tag, bei jedem Steuerelemen hin in welche Spalte es geschrieben werden soll (A;B; usw)
Private Sub CMD_Uebertragen_Click()
' Übertragen der Daten in die Tabelle
' auf der Eigenschaft Tag der Steuerelmente steht die Spalte in die die Daten geschrieben  _
werden
' Der Datensatz wird immer nach der letzten Zeile geschrieben
Dim ObCb As Object
Dim LoLetzte As Long
' letzte Zeile in Tabelle01 feststellen
LoLetzte = Worksheets("Tabelle01").UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
If LoLetzte  "" Then
Worksheets("Tabelle1").Range(ObCb.Tag & LoLetzte) = ObCb.Value
End If
Next ObCb
Else
MsgBox "Es ist keine Zeile mehr frei"
End If
End Sub

Bei dem Code ist es egal welches Steuerelement, es muss nur die Eigenbschaft Value haben.
Gruß Hajo
Anzeige
AW: Hilfe beim Code Datenpflege
15.02.2010 18:30:50
amintire
Hallo Hajo,
hab mal deinen Code ausprobiert, leider gibt er mir die Werte von den ComboBoxen und Textfeldern in Zeile 32 anstatt in der nächsten freie Zeile 6.
Ist da ein Fehler im Code bzw. wo muss ich dies ändern?
Hoffe du hast eine Lösung, vielen Dank.
Gruß Amina
AW: fehlt noch bei Code
15.02.2010 18:35:37
amintire
Funktioniert aber nicht mehr,
Next 'Rahmen hinzufügen
.Cells(i, 1).Resize(, 33).Borders.LineStyle = 1
.Cells(i, 1).Resize(, 33).Borders.Weight = 1
Hättest du evtl eine Lösung wie ich den Spaß in deinem Code einfüge und dass dieser in der nächsten freien Zeile in der Tabelle eingefügt wird.
Danke
Gruß Amina
Anzeige
AW: Hilfe beim Code Datenpflege
15.02.2010 18:58:35
Hajo_Zi
Hallo Amintire,
Ich baue Deine Datei nicht nach oder ändere bei Deiner Datei die Tag Eigenschaft.
Gruß Hajo
AW: Hilfe beim Code Datenpflege
15.02.2010 19:16:17
amintire
Hallo Hajo,
hatte auch nicht erwartet dass du meine Datei änderst oder bearbeitest.
Die Tag Eigenschaften habe ich wie du gesagt hast geändert.
Der code funktioniert ja, nur ist der Fehlerhaft - ab der 32 Zeile werden die Daten eingepflegt obwohl leere Zellen schon ab der 6ten Zeile frei wären.
Gruß Amina
AW: Hilfe beim Code Datenpflege
15.02.2010 19:22:41
Hajo_Zi
Hallo Amina,
kannst Du mir mal schrteiben wie ich das prüfen soll, ohne Deine Datei. Da habe ich keine Idee.
Gruß Hajo
Anzeige
AW: Hilfe beim Code Datenpflege
15.02.2010 19:36:38
amintire
Achso sorry, dachte du meintest was anderes mit dem Satz.
Hier wäre die Datei...
https://www.herber.de/bbs/user/68026.xls
(Wie gesagt - bei Eingabe kommen die Inhalte ab Zeile 32.)
Gruß Amina
AW: Hilfe beim Code Datenpflege
15.02.2010 19:47:43
Hajo_Zi
Hallo Amina,
was mir ohne Testung auffällt ein Next ist zu viel und die Variable i ist nicht definiert und Sie wird auch nicht verändert.
Private Sub Speichern_Click()
' Übertragen der Daten in die Tabelle
' auf der Eigenschaft Tag der Steuerelmente steht die Spalte in die die Daten geschrieben _
werden
' Der Datensatz wird immer nach der letzten Zeile geschrieben
Dim ObCb As Object
Dim LoLetzte As Long
' letzte Zeile in Tabelle01 feststellen
LoLetzte = Worksheets("Liste Mitarbeiter").UsedRange.SpecialCells(xlCellTypeLastCell).Row +  _
1
If LoLetzte  "" Then
Worksheets("Liste Mitarbeiter").Range(ObCb.Tag & LoLetzte) = ObCb.Value
End If
'        Next  'Rahmen hinzufügen
.Cells(i, 1).Resize(, 33).Borders.LineStyle = 1
.Cells(i, 1).Resize(, 33).Borders.Weight = 1
Next ObCb
Else
MsgBox "Es ist keine Zeile mehr frei"
End If
If ComboBox2 = "" Then
MsgBox ("Bitte Namen eingeben")
ComboBox2.SetFocus
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Application.ScreenUpdating = True
Unload Me
End Sub
Eine Testung ist nicht möglich wegen i. Wie Du das getestet hast ist mir nicht klar.
Gruß Hajo
Anzeige
AW: Hilfe beim Code Datenpflege
16.02.2010 05:32:09
amintire
Hallo Hajo,
sorry dass war mein Versuch des mit dem Rahmen noch hinzubekommen,
ohne die
' Next 'Rahmen hinzufügen
.Cells(i, 1).Resize(, 33).Borders.LineStyle = 1
.Cells(i, 1).Resize(, 33).Borders.Weight = 1
funktioniert ja der code, aber erst ab Zeile 32
Gruß Amina
AW: Hilfe beim Code Datenpflege
16.02.2010 08:41:07
Hajo_Zi
Hallo Amina,
da kann ich Dir Leider nicht weiter helfen. Mein Excel beschwert sich darüber das "i" nicht definiert ist.
Bei mir läuft der Code nicht.
Gruß Hajo
AW: Hilfe beim Code Datenpflege
16.02.2010 21:00:51
amintire
Hallo Hajo,
also habe den "i" Code rausgenommen und sonst auch alles was damit zu tun hat.
Die Datei ist nun folgendermaßen
https://www.herber.de/bbs/user/68051.xls
Hier steht bei UserForm nur dieser Code drinnen
Private Sub Speichern_Click()
' Übertragen der Daten in die Tabelle
' auf der Eigenschaft Tag der Steuerelmente steht die Spalte in die die Daten geschrieben _
werden
' Der Datensatz wird immer nach der letzten Zeile geschrieben
Dim ObCb As Object
Dim LoLetzte As Long
' letzte Zeile in Tabelle01 feststellen
LoLetzte = Worksheets("Liste Mitarbeiter").UsedRange.SpecialCells(xlCellTypeLastCell).Row +  _
1
If LoLetzte  "" Then
Worksheets("Liste Mitarbeiter").Range(ObCb.Tag & LoLetzte) = ObCb.Value
End If
Next ObCb
Else
MsgBox "Es ist keine Zeile mehr frei"
End If
If ComboBox2 = "" Then
MsgBox ("Bitte Namen eingeben")
ComboBox2.SetFocus
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Application.ScreenUpdating = True
Unload Me
End Sub

Private Sub Schließen_Click()
Unload Me
End Sub

Es funktioniert ja alles wunderbar. Die Daten werden in die entsprechenden Zellen geschrieben,
nur leider ab ZEILE 32.... und nicht wie im Code beschrieben bei der letzten freie Zeile.
Irgendwo ist doch da der Code oder die Eigenschaften fehlerhaft. Die TAG Eigenschaften habe ich auch eingestellt und hab ehrlich gesagt keine Ahnung wo der Fehler liegt.
Gruß Amina
Anzeige
AW: Hilfe beim Code Datenpflege
16.02.2010 21:05:41
Hajo_Zi
Hallo Amina,
mit LoLetzte = Worksheets("Liste Mitarbeiter").UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
ermittelst Du die Letzte belete Zeile in der Tabelle und das ist nun mal 32. Das siehst Du auch mit Strg+Ende.
Gruß Hajo
AW: Hilfe beim Code Datenpflege
16.02.2010 21:31:38
amintire
Versteh ich nicht wieso es die 32.te Zeile ist. Man sieht doch dass ab Zeile 6 schon Zellen leer sind - dementsprechend auch frei.
Gruß Amina
AW: Hilfe beim Code Datenpflege
16.02.2010 22:06:14
Hajo_Zi
Hallo Amina,
es stehen aber schon Werte in Zeile 33 als ist 34 korrekt.
Gruß Hajo
Anzeige
AW: Hilfe beim Code Datenpflege
16.02.2010 22:15:54
amintire
Hallo Hajo,
wenn ich Zeile 32, 33 und 34 lösche, von vorne beginne schreibt er mir die Daten ab Zeile 32 anstatt Zeile 6 oder 7 oder so.
Natürlich ist es korrekt wenn in 33 was steht dass er mir die Sachen auf 34 schreibt, aber wie gesagt auch wenn da nichts steht schreibt er die Daten in Zeile 32.
Gruß Amina. ;)
AW: Hilfe beim Code Datenpflege
16.02.2010 22:21:51
Hajo_Zi
Hallo amina,
Du hast nach dem Löschen schon gespeichert? Mir scheint NEIN.
Gruß Hajo
AW: Hilfe beim Code Datenpflege
16.02.2010 22:42:14
amintire
Hallo nochmal,
irgendwie scheint der Fall ja doch komplizierter zu werden als erwartet.
Auch wenn ich die Datei abspeicher, neu starte und die Daten neu eingebe - wie immer ab Zeile 32 was ich nicht versteh.
Vielleicht soll es ja so sein...
Gruß Amina
Anzeige
AW: Hilfe beim Code Datenpflege
16.02.2010 22:55:02
Hajo_Zi
Hallo Amina,
ich habe jetzt Zeile 6 bis Zeile 36 markiert und gelöscht, Datei gespeihert und es wird die Zeile 6 richtig erkannt.
Gruß Hajo

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige