Zeile in Datenbank finden und in einer andere Seite anzeigen
#1
Hallo

Ich würde gerne in dem Arbeitsblatt "Mitgliederdaten" eine Zeile  finden und diese in dem Arbeitsblatt Mitglied anzeigen lassen.
Die Suche soll aus dem Arbeitsblatt Mitglied erfolgen.
Die Daten würde ich gerne in einem Formblatt anzeigen lassen und ein paar Eintragungen ändern und dann in der Datenbank speichern.

Ich hatte schon einiges mit Filter, X-verweis, S-verweis VBA  versucht. Allerdings reichen das meine Fähigkeiten einfach nicht aus.
Wichtig wäre auch, das die Abfrage auch mit älteren Excelversionen läuft. Ist VBA besser geeignet als Makros?

Vielen Dank


Angehängte Dateien
.xlsm   teste01_.xlsm (Größe: 72,84 KB / Downloads: 11)
Antworten Top
#2
erst mal so allgemein für eine mögliche Vorgehensweise bei der Auswahl.
Kommt u.a. auch darauf an, in welcher Reihenfolge Du vorgehst, z.B.

1)
Auswahl das Namens
Dazu eine Datengültigkeit mit Verweis auf Mitgliedergesch[Name] bzw. ='Mitgliederliste Geschäftsstelle'!$B$11:$B$32. Kann man auf jeden Fall flexibel gestalten

2)
Filtern aller Mitglieder mit dem gewählten Namen nach I15:...
=FILTER(Mitgliedergesch;Mitgliedergesch[Name]=Mitglied!C16) Könnte man auf Name + Vorname beschränken.
Ob man FILTER verwenden kann, hängt davon ab, wie alt die älteste Version ist. Man sollte da nicht zu viel Spielraum lassen ...

3)
Auswahl des gewünschten Vornamens

4)
Filtern aller Mitglieder mit dem gewählten Vornamen nach ...
(könnte ja mehrere Müller oder Schmidt mit gleichem Vornamen geben

5)
Auswahl der Mitgliedsnummer oder was auch immer
--> z.B. Straße. Könnte aber auch sein, das es den Müller, Tim in der Straße 2x gibt usw.


VBA ist übrigens die "Makrosprache"
Falls Du irgendwo Excel 4 oder 5 hast, da war das noch etwas anders. Das ist allerdings auch schon gut 30 Jahre her ... Da hat man noch auf Makroblättern programmieren müssen bzw. konnte später nach Einführung der Module usw. anfangs auch noch in deutsch programmieren.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hi,

wozu eine Eingabemaske programmieren? Reicht es nicht aus, die Daten direkt im Tabellenblatt "Mitgliederdaten" zu ändern?

Und wenn man schon unbedingt eine Eingabemaske haben will, wieso dann nicht die (zugegebenermaßen sehr gut verstecke) Datenmaske verwenden?
Gruß,
Helmut

Win11 - Office365 / MacOS - Office365
Antworten Top
#4
(20.01.2026, 17:18)Roman-1 schrieb: Ich würde gerne in dem Arbeitsblatt "Mitgliederdaten" eine Zeile  finden und diese in dem Arbeitsblatt Mitglied anzeigen lassen.
Die Suche soll aus dem Arbeitsblatt Mitglied erfolgen.
Die Daten würde ich gerne in einem Formblatt anzeigen lassen und ein paar Eintragungen ändern und dann in der Datenbank speichern.
Das geht nur mit VBA.

Und so wie es sit wird es schwierig(er), weil die Feldnamen im Blatt "Mitglied" und der Datenbank Blatt "Mitgliederdaten" nicht identisch sind.

Ich beschreibe mal den Fall das diese identisch sind: 

Damit wir die passende Zeile finden muss es eine eindeutige ID geben, das ist in Deinem Fall die Mitgliedsnummer. Wenn also in dem Blatt "Mitglied" eine Mitgliedsnummer steht, dann sucht man die in der Datenbank in der entsprechenden Spalte, wird diese nicht gefunden, dann wird eine neue  Mitgliedsnummer vergeben, diese als letzte Zeile in der Datenbank hinzugefügt.

Man macht eine Schleife und sucht jeden Feldnamen im Blatt "Mitglied" in der ersten Zeile  der Datenbank Blatt "Mitgliederdaten, dann hat man die Spalte wo die Daten rein müssen. Im Blatt "Mitglied" stehen die Daten immer rechts vom Feldnamen.

Und nun schreibt man die Daten da einfach rein.

Daten laden geht anders herum, man kann die Suchparameter aus dem Blatt "Mitglied" nehmen und dann alle relevanten Daten z.B. rechts daneben ab Spalte I anzeigen, so wie Du es schon vorgesehen hast. Das ist jedoch relativ aufwendig...

Einfacher ist es man geht in die Datenbank, wählt irgendeine Zelle (durch Suchen und/oder Filtern) und lädt dann den Datensatz in das Blatt Mitglied. Ich hatte da vor Urzeiten schon mal ein Beispiel gemacht:
[
Dateiupload bitte im Forum! So geht es: Klick mich!
]

Wenn man die entsprechenden Blätter mit "Property" Routinen ausstattet wird es fast universell. Wenn die Feldnamen jedoch verschieden sind, dann müssen die Codes zuerst in einer Transformationstabelle nachschauen wie der entsprechende Feldname im anderen Blatt lautet.

Andreas.
Antworten Top
#5
Hi
bei deinem Kenntnisstand würde ich dir zu folgendem raten:
lass das mit dem Tabellenblatt "Mitglied" und arbeite nur mit den "Mitgliederdaten"
suche dort mit dem Autofilter, um dir die Daten einzelner Mitglieder anzeigen zu lassen.
um ein einzelnes Mitglied in dieser Liste komfortabler bearbeiten zu können, kannst du den Menübfehl "Maske" verwenden.
dann wird dir die selektierte Datenzeile in Maskenform angezeigt und du kannst sie komfortabler bearbeiten.

bei neueren Excelversionen wird diese Funktion Maske nicht mehr im normalen Menü angezeigt, aber du kannst sie dir immer noch in die Schnellzugriffsleiste einfügen.

hier zu: 
- Symbolleiste für den Schnellzugriff anpassen
- weitere Befehle
- Befehle auswählen - Alle Befehle
dort dann in der Liste nach "Maske" suchen (ist alphabetisch sortiert) und auf "Hinzufügen" klicken.

dann hast du den Button "Maske" in der schnellzugriffsleiste und kannst dir über diesen die Daten eines Mitgliedes in einer Eingabemaske ansehen und auch bearbeiten, ohne dass du etwas programmieren musst.

Gruß Daniel
Antworten Top
#6
(20.01.2026, 18:11)slowboarder schrieb: dann hast du den Button "Maske" in der schnellzugriffsleiste und kannst dir über diesen die Daten eines Mitgliedes in einer Eingabemaske ansehen und auch bearbeiten, ohne dass du etwas programmieren musst.

Das ist genau das, was ich gemeint habe...
Gruß,
Helmut

Win11 - Office365 / MacOS - Office365
Antworten Top
#7
Hallo.
So schnell ein Problem gelöst.

Der Tipp von euch mit der Maske ist prima.

Anderst, als von mir gedacht, aber das Teil macht genau, das was es machen soll.
Vielen Dank euch
Gruß
Roman
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste