Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
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

Datenbank erstellen

Datenbank erstellen
11.05.2018 12:42:08
Lisa
Hallo Zusammen,
ich bin neu hier und Versuche gerade folgende Problemstellung zu bearbeiten. Dabei könnte ich eure Hilfe gebrauchen.
Ich habe eine Tabelle (Tabelle 1.) in der sich in unregelmäßigen Abständen Einträge aktualisieren. Die Überschriften dieser formatierten Tabelle und somit die Reihenfolge der Einträge bleibt hierbei konstant, nicht aber die Anzahl der Einträge.
Dann habe ich eine zweite Tabelle (Tabelle 2.) in der die gesamten Daten gesammelt werden sollen. Folglich möchte ich anhand einer Project Nummer (für jeden Eintrag verschieden, aber nicht kontinuierlich steigend oder fallend) überprüfen, ob die Daten aus Tabelle 1 bereits in Tabelle 2 vorhanden sind. Sollte dieses nicht der Fall sein, gegebenenfalls diese an die Tabelle 2 anfügen.
Mein größtes Problem hierbei ist, dass die Tabellen jeweils unregelmäßig groß sind und ich somit nicht mit konstanten Zellenangaben arbeiten kann.
Um etwas anschaulicher zu zeigen was ich meine, habe ich hier https://www.herber.de/bbs/user/121547.xlsx
Eine Bsp. Datei hochgeladen.
Danke für Eure Hilfe
Lisa

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenbank erstellen
11.05.2018 13:16:27
Armin
Hallo Lisa,
werden die Daten in Tab1 manuell eingegeben oder wie kommnen sie in das Sheet?
Gruß Armin
AW: Datenbank erstellen
11.05.2018 13:36:22
Lisa
Hallo Armin,
danke für deine schnelle Antwort und dafür, dass du mir Hilfst.
Die Daten werden in einem Online Formular eingetragen, dass mit der Tabelle Verknüpft ist und sich manuell durch den Butten Alle aktualisieren aktualisieren lässt.
Dabei kann es sein, dass einige Einträge neu hinzukommen, alte stehen bleiben, oder alte Einträge gelöscht werden.
Gruß Lisa
AW: Datenbank erstellen
11.05.2018 14:25:25
Armin
Hallo Lisa,
der Code in ein Modul speichern und den Makro aufruf als letzten Aufruf im Button "Alle aktualisieren" einfügen.
Alle neuen Einträge werden in die Datenbank übernommen.
Falls Du Probleme hast melden.

Sub Neuer_Eintrag()
Dim Zx As Long, ZE As Long
Dim PN As Range
Dim DB As Range
Dim WS As Worksheet
Set WS = Worksheets("Datenbank")
Zx = WS.Cells(Rows.Count, 1).End(xlUp).Row + 1
With Worksheets("Request")
ZE = .Cells(Rows.Count, 1).End(xlUp).Row
For Each DB In .Range("A2:A" & ZE)
Set PN = WS.Columns(1).Find(DB.Value, lookat:=xlPart, LookIn:=xlValues)
If PN Is Nothing Then
WS.Cells(Zx, 1).Value = DB.Offset(0, 0).Value
WS.Cells(Zx, 2).Value = DB.Offset(0, 1).Value
WS.Cells(Zx, 3).Value = DB.Offset(0, 2).Value
WS.Cells(Zx, 4).Value = DB.Offset(0, 3).Value
WS.Cells(Zx, 5).Value = DB.Offset(0, 4).Value
End If
Next
End With
Set WS = Nothing
End Sub
Gruß Armin
Anzeige
AW: Datenbank erstellen
11.05.2018 15:04:12
Lisa
Hallo Armin,
das funktioniert sehr gut Danke! Zwei Kleinigkeiten hab ich noch zum Verständnis Meinerseits und zur besseren Funktionalität.
1. Wie kann ich eine weitere Schleife einbauen, die nicht nur immer den letzten Eintrag überprüft sondern automatisch vom letzten Eintrag bis zum ersten Eintrag des Request durchläuft. (In dem Zusammenhang könntest du mir erklären, wofür dein DB und PN steht?)
2. Wie genau kann ich meinen Makro an eine bestehende Excel Funktion ("Alle aktualisieren") anhängen?
Danke und Gruß Lisa
AW: Datenbank erstellen
11.05.2018 16:06:55
Armin
Hallo Lisa,
es werden immer alle Einträge durchlaufen!! Die Bezeichnungen sind Variable deren Bezeichnung ist Willkürlich von mir gewählt. (siehe weiter unten im Code)
Sub Neuer_Eintrag()
Dim Zx As Long, ZE As Long
Dim PN As Range 'ProjektNummer
Dim DB As Range 'Datenbank
Dim WS As Worksheet
Set WS = Worksheets("Datenbank")
Zx = WS.Cells(Rows.Count, 1).End(xlUp).Row + 1 'Wieviele Zeilen sind in der Datenbank plus 1
With Worksheets("Request")                     'Tabelle "Request"
ZE = .Cells(Rows.Count, 1).End(xlUp).Row  'wieviele Zeilen
For Each DB In .Range("A2:A" & ZE)        'alle Zeilen durchlaufen
Set PN = WS.Columns(1).Find(DB.Value, lookat:=xlPart, LookIn:=xlValues) 'Ist die  _
ProjektNummer schon vorhanden?
If PN Is Nothing Then 'Nein nicht vorhanden
WS.Cells(Zx, 1).Value = DB.Offset(0, 0).Value 'Daten übergabe
WS.Cells(Zx, 2).Value = DB.Offset(0, 1).Value 'Daten übergabe
WS.Cells(Zx, 3).Value = DB.Offset(0, 2).Value 'Daten übergabe
WS.Cells(Zx, 4).Value = DB.Offset(0, 3).Value 'Daten übergabe
WS.Cells(Zx, 5).Value = DB.Offset(0, 4).Value 'Daten übergabe
End If
Next 'Nächste Zeile in "Request"
End With
Set WS = Nothing
End Sub

'Bitte beachten!
'Ein "CommandButton1" wird nur erzeugt wenn Du ActiveX-Steuerelemnte benutzt!
'Keine Formularsteuerelemente!!
'EntwicklerTools aufrufen
'Auf Entwurfsmodus stellen (färbt sich grün)
'Einfügen ActiveX-Steuerelemnte gleich ersten Butto benutzen
'auf Tabelle einen Button erzeugen; Markieren (geht nur im Entwurfmodus)
'Auf Button rechte Maustaste und Code Anzeigen jetzt wurde in der Codeseite der Tabelle
'Private Sub CommandButton1_Click() erzeugt.
'Alle Anweisungen wie oben eintragen
'Auf Button rechte Maustaste und Eigenschaften In Zeile Caption | Alle aktualisieren | eintragen.
Private Sub CommandButton1_Click()
'Anweisung die bis jetzt schon vorhanden sind
Neuer_Eintrag
End Sub
Grüße Armin
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige