Daten in bestimmte Zeile eintragen

Mitglied: trmanky

trmanky (Level 1) - Jetzt verbinden

05.09.2011 um 12:03 Uhr, 3412 Aufrufe, 4 Kommentare

Hallo IT-Gemeinde,

ich habe ein relativ kompliziertes Problem, jedenfalls lässt sich danach schlecht bei Google suchen :D

Folgender Hintergrund:
Ich habe den Auftrag eine Datenbank für ein neues Produkt zu erstellen. Das Produkt besteht dabei aus verschieden Einzelteilen, die wir selbst zusammenfügen. Jedes Teil hat eine eigene Seriennummer usw.
Dazu hab ich als erstes eine Tabelle erstellt mit den verschiedenen Seriennummern, Montagedatum und Monteur.
Um die Daten nun schnell eingeben zu können, habe ich ein Eingabeformular erstellt, Buttons mit Makros setzen eine neue Zeile ein und setzen die Werte nun in die jeweilige Spalte ein, sodass sich die Liste von oben nach unten füllt.

Nun soll es noch einen Testlauf geben. Gesagt getan, habe ich ein Formular für diesen Testlauf erstellt. Diese Daten sollen ebenfalls in die Tabelle. Ich habe die Tabelle also um die Punkte des Testlaufs erweitert und wollte gerade mit der Erstellung des Makros zur Eingabe der Daten in die Tabelle beginnen, als ich auf mein Problem stieß:

Wie finde ich den Datensatz (also das montierte Produkt) in meiner Tabelle, um in der gleichen Zeile die Daten für den Testlauf einzutragen? Bei der Montage erhält das Produkt eine eigene Seriennummer, d.h. hinter einer Seriennummer stecken die einzelnen Nummern der Bauteile. Das Problem ist nämlich, dass nicht zwingend direkt nach der Montage der Testlauf durchgeführt wird. Ich kann also nicht einfach in der aktuelle Zeile arbeiten, sondern muss die Zeile der Seriennummer entsprechend erst suchen.

Nun muss ich also per Makro nach der Seriennummer suchen, die Zeile auswählen, dann X Schritte nach rechts (zu der jeweiligen Spalte, in der der erste Datensatz des Testprotokolls eingegeben werden soll), um dann die Daten nacheinander eintragen lassen zu können.

Ich weiß, ich könnte es mir einfach machen und eine zweite Tabelle anfangen, nur für die Testprotokolle, aber das möchte ich nicht. Ich möchte alles in einer Tabelle stehen haben. Gibt es eine Möglichkeit das zu bewerkstelligen?

Meine Kenntniss in VBA sind sehr, sehr, sehr, sehr gering, also bräuchte ich eine relativ ausführliche Erläuterung =)

VG
Mitglied: bastla
05.09.2011 um 12:20 Uhr
Hallo trmanky!
Wie finde ich den Datensatz (also das montierte Produkt) in meiner Tabelle
Gegenfrage - wie würdest Du das in der Tabelle ohne VBA machen? Wenn Du darauf eine Antwort hast, ist der Weg (über ein aufgezeichnetes Makro als Zwischenschritt) gar nicht mehr weit ...

Grüße
bastla
Bitte warten ..
Mitglied: trmanky
05.09.2011 um 12:38 Uhr
Hallo bastla,

diesen Gedanken hatte ich auch schon und habe prompt ein Makro aufgezeichnet und dann auf Suchen + Auswählen geklickt, die Zelle auf dem Testlaufprotokoll mit der Seriennummer angewählt kopiert und eingefügt und schließlich gesucht. Aber wenn ich mir nun das Makro anschaue, steht da:

Range("D5").Select
Selection.Copy
Sheets("Rekorder-SN").Select
Cells.Find(What:="123456", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate

unter "Cells.Find(What=123456..." sehe ich, dass er zwar nach der SN (hier nur eine Test-SN :D) sucht, aber eben nicht nach dem variablen kopierten aus D5 sondern nach der exakten Nummer. Das ist doch nicht richtig oder? Und wie kann ich jetzt die jeweiligen Spalten anwählen? Über den Cells-Befehl?

VG
Bitte warten ..
Mitglied: bastla
05.09.2011 um 12:53 Uhr
Hallo tmanky!

Der nächste Schritt wäre, zum einen die Konstante "123456" durch eine Variable oder einen Bezug auf die Zelle (also zB Cells(5, "D").Value)) zu ersetzen und zum anderen, in der Online-Hilfe nach "Find" zu suchen ...

... und da das uU nicht unmittelbar zum gewünschten Ergebnis führt, einen anderen Begriff aus dem aufgezeichneten Suchvorgang, also etwa "SearchOrder" oder "LookIn" zu verwenden - früher oder später bist Du dann bei der "Range.Find"-Methode angekommen.
Die Zeile einer Zelle findest Du übrigens mit ".Row" heraus ...

Grüße
bastla

P.S.: Wenn Du Code postest, verwende doch bitte die passende Formatierung ...
Bitte warten ..
Mitglied: trmanky
06.09.2011 um 12:52 Uhr
Heyho,

ich habs gelöst =) mit ein bisschen von allem :D

Hoffe, die Formatierung hat geklappt.
Ich habe mir als erstes eine Suchzelle "erschaffen". Also eine Zelle im Blatt der Tabelle, in die ich die gesuchte SN jedes mal hineinkopiere. Danach kopiere ich den in die Tabelle einzufügenden Inhalt und beginne mit der Suche nach meiner SN.
Ist die gefunden, springe ich bestimme Schritte(=Zellen) nach rechts und kopiere die Daten hinein.
Das wäre also erledigt, nun habe ich aber ein weiteres Problem, dazu eröffne ich aber ein neues Thema :D

Danke, für die Hilfe, vllt schaust du in mein neues Thema auch gleich nochmal rein ;-) face-wink

VG
Bitte warten ..
Heiß diskutierte Inhalte
Hardware
Outdoor LAN sichern mit oder ohne Fritzbox Verständnis Frage
bluescreenVor 1 TagFrageHardware17 Kommentare

Hallo zusammen, ich habe die letzten Stunden schon viel hier gelesen, stehe aber ein wenig auf dem Schlauch, wie und wo ich weiter suchen ...

Windows 10
Windows 7 pro Lizenz nutzen für Windows 10
lukas0209Vor 1 TagFrageWindows 1015 Kommentare

Hallo Community, ich versuche seit einigen Wochen unser Netzwerk von Windows Server 2008 R2 Standard auf Windows Server 2016 Essentials um, welches eine städtische ...

Windows Netzwerk
Telefone im Netzwerk bekannt machen
jannik0205Vor 1 TagFrageWindows Netzwerk13 Kommentare

Hallo Zusammen, In unserem Unternehmen gibt es eine Telefonanlage mit eigenem Telefonienetz (192.168.5.X). Schließe ich ein Telefon an eine Netzwerkdose, bekommt es vom DHCP- ...

Netzwerkgrundlagen
Frage zu LWL Kabel
gelöst NominisVor 1 TagFrageNetzwerkgrundlagen6 Kommentare

Hallo, ich habe nur mal eine kurze Verständnisfrage. Es geht um die Verbindung bzw. Anbindung von Switches (Cisco 48Port 10/100/1000 MBit mit 2 SFP+ ...

Windows Netzwerk
WTS-Anmeldung per RDP am Wochenende verbieten?
MuM2810Vor 1 TagFrageWindows Netzwerk8 Kommentare

Hallo zusammen, wir haben bei uns Windows Server 2016 mit 2 Terminal Servern im Einsatz. Wie aus dem Titel schon ersichtlich ist, ist bei ...

Microsoft
Microsoft Teams - "bitte wenden Sie sich an (. . .) um Teams für "domäne" zu aktivieren" nur bei einem Benutzer
eastfrisianVor 1 TagFrageMicrosoft6 Kommentare

Hallo zusammen! Wir haben bei uns Teams als Hybridversion eingeführt (Exchange on premise, AD-Sync in die Cloud) und nutzen Teams über das basic-Abonnement. Während ...

Netzwerke
Keine Versand von Mails von der Firmen zur Privaten E-Mailadresse möglich
blaub33r3Vor 1 TagFrageNetzwerke6 Kommentare

Hallo zusammen, wieso kommt der User keine Mails mehr? Der Sender wird als Spamer betrachtet? 1. Mailing an andere Privaten Adressen / Firmen Adressen ...

Microsoft
Staatsanwaltschaften verschicken Vorladungen in Sachen Windows 10 Lizenzkeys
kgbornVor 10 StundenInformationMicrosoft2 Kommentare

Nur zu Info für die Käufer der eBay-Schnäppchen - neuer Fall Staatsanwaltschaften verschicken Vorladungen in Sachen Windows 10 Lizenzkeys