Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Formel
#1
Hallo zusammen,

nun melde ich mich nochmal mit der Bitte um Hilfe.
Möchte mir einfach eine schönen Datenbank erarbeiten und trotz meines hohen Alters dazu lernen 17

Habe eine einfache Excel Liste (Alphabetisch Firmenname:  Branche - Ansprechpartner - Ort - Plz - Telefon - Mail usw.usw.)
Mit nachfolgender Formel kann ich in meiner Maske nach Namen suchen und alle in einer Zeile eingetragenen Daten werden mir angezeigt.
 

Private Sub Öffnen_Click()
Set finden = Columns(1).Find(what:=Firmenname)
If finden Is Nothing Then
MsgBox "(Es wurde nichts passendes gefunden)"
Else

Firmenname = finden.Offset(0, 0)
Client = finden.Offset(0, 1)
Branche = finden.Offset(0, 2)
Mietobjekt = finden.Offset(0, 3)
Etage = finden.Offset(0, 4)
Straße = finden.Offset(0, 5)
Plz = finden.Offset(0, 6)
Ort = finden.Offset(0, 7)
Ansprechpartner = finden.Offset(0, 8)
Position = finden.Offset(0, 9)
Telefon = finden.Offset(0, 10)
Mobil = finden.Offset(0, 11)
Mail = finden.Offset(0, 12)
Wartungsauftrag = finden.Offset(0, 15)
End If
End Sub


Nun Habe ich einen Weiter Button und einen zurück Button eingefügt.
Wie lautet die Formel für "Weiter bzw. Zurück" damit ich in der Liste einfach weiter oder zurück klicken kann.

Vielen Dank für eure Unterstützung.
Viele Grüße vom Bodensee
Antworten Top
#2
Hallo,

das würde ich ganz anders angehen. Am besten stellst du mal eine Beispieldatei ein, dann kann man konkrete Vorschläge machen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Bitte, verwende Code Tags trotz deines 'hohes' Alters

Was sollte 'weiter' bzw 'zurück' bedeuten ?
Warum ladest die keine Beispieldatei hoch zum Illustrieren deiner Frage ?

reicht schon:

Code:
Private Sub Öffnen_Click()
    if not Columns(1).Find(Firmenname) is nothing then sn=Columns(1).Find(Firmenname).resize(,15)
End Sub

Aber....: autofilter macht das auch.
Code:
Private Sub Öffnen_Click()
    cells(1).currentregion.autofilter 1, Firmenname
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#4
Hallo,

(17.11.2022, 11:56)Romex1969 schrieb: trotz meines hohen Alters dazu lernen 17
Definiere hohes Alter ... wenn 1969 Dein Geburtsjahr ist, dann ist das für mich kein hohes Alter ...

(17.11.2022, 11:56)Romex1969 schrieb: Nun Habe ich einen Weiter Button und einen zurück Button eingefügt.
Wie lautet die Formel für "Weiter bzw. Zurück" damit ich in der Liste einfach weiter oder zurück klicken kann.

Das wäre dann wahrscheinlich Findnext und Findprevious.

(17.11.2022, 11:56)Romex1969 schrieb:
Code:
Firmenname = finden.Offset(0, 0)
Offset(0,0) kannst Du auch weglassen. Wenn etwas gefunden wurde zeigt die Variable find auf die Zelle, in der der Suchbegriff gefunden wurde. Es würde also reichen:
Code:
Firmenname = finden.value

Um das aber umzusetzen muss die letzte gefundene Position bekannt sein. Also müsste man ggf. finden global definieren.

Ich würde die Ausgabe dann aber in eine eigene Sub auslagern, da der gleiche Code bei Find, Findnext und Findprevious benötigt wird.

Eventuell könnte es so funktionieren:
Code:
Dim finden As Range
Dim Firmenname As String
Private Sub Öffnen_Click()
Firmenname = "10001"
Set finden = Columns(1).Find(what:=Firmenname)
If finden Is Nothing Then
     MsgBox "(Es wurde nichts passendes gefunden)"
Else
     Ausgabe
End If
End Sub
Private Sub Weiter_Click()
If Not finden Is Nothing Then
    Set finden = Columns(1).FindNext(after:=finden)
    Ausgabe
End If
End Sub
Private Sub Zurueck_Click()
If Not finden Is Nothing Then
    Set finden = Columns(1).FindPrevious(before:=finden)
    Ausgabe
End If
End Sub
Private Sub Ausgabe()
Firmenname = finden.Value
Client = finden.Offset(0, 1).Value
Branche = finden.Offset(0, 2).Value
Mietobjekt = finden.Offset(0, 3).Value
Etage = finden.Offset(0, 4).Value
Straße = finden.Offset(0, 5).Value
Plz = finden.Offset(0, 6).Value
Ort = finden.Offset(0, 7).Value
Ansprechpartner = finden.Offset(0, 8).Value
Position = finden.Offset(0, 9).Value
Telefon = finden.Offset(0, 10).Value
Mobil = finden.Offset(0, 11).Value
Mail = finden.Offset(0, 12).Value
Wartungsauftrag = finden.Offset(0, 15).Value
'... wo auch immer das verwendet oder angezeigt wird
End Sub
Gruß
Michael
Antworten Top
#5
@Michael
Ohne Rechner, daher von mir nur vermutet: Führe deine Suche mal per Code (10001) aus, suche dann in der Userinterface-Suche nach etwas anderem (20001) und probiere dann mal deine Weiter-/Zurück-Prozeduren: Was wird dann als nächstes gefunden, 10001 oder 20001?
Antworten Top
#6
@Earl Fred: Das Konstrukt ist zwar prinzipiell vom OP, aber da hast Du natürlich recht, das sollte er bedenken!
Gruß
Michael
Antworten Top
#7
Hi,

also, ich würde einfach eine Standard-Funktionalität von Excel verwenden.

Möglichkeit 1:
Verwende den Autofilter oder gleich eine Strg-T-Tabelle

Möglichkeit 2:
Verwende die Eingabemaske
Gehe dazu auf deine Liste und drücke und halte die Alt-Taste dann drückst du zusätzlich "N" und dann "M". Die Eingabemaske erlaubt dir die Suche nach beliebigen Einträgen. Ebenso hat sie einen "Weitersuchen"- und einen "Vorherigen suchen"-Botton. Und man kann damit auch neue Einträge erstellen.

PS: wahrscheinlich bin ich mittlerweile zu alt, um selber ständig das Rad neu zu erfinden bzw. Eingabe- und Suchmasken zu programmieren. 21
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top


Gehe zu:


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