Office: Eigene Suche erstellen

Helfe beim Thema Eigene Suche erstellen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, Ich bin komplett neu hier und bedanke mich schon mal für die Hilfe. Ich hatte Excel in der Ausbildung und das ist schon einige Tage her :P Ich... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von I AM MACO, 11. Mai 2022.

  1. I AM MACO Neuer User

    Eigene Suche erstellen


    Hallo, Ich bin komplett neu hier und bedanke mich schon mal für die Hilfe. Ich hatte Excel in der Ausbildung und das ist schon einige Tage her :P Ich versteh also ein bissel von dem, was ich mache, kenn mich aber nicht wirklich mit VBA aus.

    Ich habe eine Datei mit 2 Blättern auf dem 2. Blatt ist Zelle B3, in der ein Dropdown ist. Ich habe ein Makro erstellt, was auch komplett funktioniert. Bis auf die Suche. Denn hier soll nach dem Inhalt der Zelle gesucht werden. Allerdings hat er im Makro nicht die Zelle gespeichert, sondern den Namen, der in der Zelle stand.

    Wahrscheinlich sehr unsauber, aber tut, was es soll :P

    Sub SummeÜbertragen()
    '
    ' SummeÜbertragen Makro
    '

    '
    Range("B3").Select
    Selection.Copy
    Sheets("Liste").Select

    Cells.Find(What:="Frau ABC", After:=ActiveCell, LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Activate

    ActiveCell.Offset(0, 15).Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=RC[-11]+Abendessen!R[23]C[-10]"
    Selection.Copy
    ActiveCell.Offset(0, -11).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    ActiveCell.Offset(0, 11).Select
    Selection.ClearContents
    Sheets("Abendessen").Select
    Range("D3:E3").Select
    Application.CutCopyMode = False
    MsgBox "Erledigt!"
    Range("D3:E3").Select
    End Sub

    und anstatt Frau ABC soll er halt nach dem Suchen, was in Zelle B3 steht. Das kann durch das Dropdown geändert werden.

    Ich hoffe, ich konnte mich verständlich ausdrücken :) Liebe Grüße
     
    I AM MACO, 11. Mai 2022
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi,

    ersetze "Frau ABC" durch Range("B3")



    Eigene Suche erstellen GrußformelEigene Suche erstellen Beverly's Excel - Inn
     
    Beverly, 11. Mai 2022
    #2
  3. I AM MACO Neuer User
    Hallo und vielen Dank... So einfach... allerdings sucht er jetzt nach B3 in der Seite "Liste" und die Zelle B3 in der die Info steht befindet sich auf der Seite "Abendessen". Darf ich nochmal um Hilfe bitten?
     
    I AM MACO, 11. Mai 2022
    #3
  4. Beverly
    Beverly Erfahrener User

    Eigene Suche erstellen

    Hi,

    weder aus deiner Beschreibung noch aus deinem Code ging hervor, in welchem Tabellenblatt der Suchbegriff steht - zumindest konnte ich das nicht entnehmen und deine Mappe kenne ich nicht.
    Schreibe einfach noch das Worksheet davor - also Worksheets("Adressen").Range("B3")



    Eigene Suche erstellen GrußformelEigene Suche erstellen Beverly's Excel - Inn
     
    Beverly, 11. Mai 2022
    #4
  5. I AM MACO Neuer User
    Sorry, jetzt wo ich es nochmal gelesen habe klingt es dumm. Stimmt. Leider kommt dabei ein "Sytaxfehler" raus.
    Ich versuche mich nochmal zu erklären, 2 Blätter. auf dem 2. Blatt (Abendessen) Zelle B3 ist ein Dropdown. Mein Makro nimmt den wert aus der Zelle, kopiert ihn, geht auf Blatt 1 (Liste) und soll dort nach der Zelle mit dem gleichen Wert Suchen um dann eine Rechnung durch zu führen und einzufügen.
    Ich hab das ganze internet abgeforstet und hab einfach keine Ahnung wie ich das bewerkstelligen soll. Vielleicht ist es auch mit der Suche:

    Cells.Find(What:=Worksheets("Abendessen").Range("B3"), After:=ActiveCell, LookIn:=xlFormulas,
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Activate

    nicht richtig gelöst?
     
    I AM MACO, 11. Mai 2022
    #5
  6. Beverly
    Beverly Erfahrener User
    Und was sagt der Debugger genau, also welchen Text gibt er aus (nicht nur die Fehlernummer).

    Dein Code ist sicher mit dem Makroekorder aufgezeichnet, das beweisen deine vielen Select und Activate - darauf kann man in 99% aller Fälle verzichten, was den Code wesentlich einfacher und auch übersichtlicher macht.
    Hilfreich wäre eine hochgeladene Beispielmappe - ein paar Dummydaten sind ausreichend (falls sensible Daten enthalten sind) sowie eine genaue wörtliche Beschreibung, was der Code machen soll.



    Eigene Suche erstellen GrußformelEigene Suche erstellen Beverly's Excel - Inn
     
    Beverly, 11. Mai 2022
    #6
    1 Person gefällt das.
  7. I AM MACO Neuer User
    Vielen Dank schonmal für deine Hilfe. Ich hab jetzt einen Dummy erstellt. Folgendes Soll passieren.
    Wir errechnen in der Küche einzelne Beträge für Wurstscheiben und Co. Das muss täglich gemacht werden. Damit es einfach ist, wollte ich es einfach mit Excel eintragen, zusammen rechnen lassen und dann auf den aktuellen Betrag addieren.

    Beispiel: Frau B hat aktuell 111€ in Worksheet Liste Spalte E. Jetzt geht man auf Worksheet Abendessen, kann dort oben B3 die Person auswählen, bei der man etwas hinzufügen möchte. Ändert nun in Spalte D die Stückzahl und bekommt in F26 die Summe, die zu Liste:E4 hinzugefügt werden soll.

    Ich bin wie folgt vorgegangen so wie du sagst, mit dem Makro Recorder. Habe dann Worksheet Abendessen Spalte B3 kopiert, Bin auf Worksheet Liste und hier soll er eigentlich nach der Person Suchen die in B3 steht. Allerdings hat er mir dort Frau A eingetragen, wie oben zu sehen. Und ich möchte, da sich der Wert in B3 ja ändert, dass er genau danach sucht, was dort steht. Dann springt er an die Seite und macht die Berechnung, kopiert diese und ersetzt den alten Betrag (in diesem Fall ja E4) mit dem neuen Betrag.
     
    I AM MACO, 11. Mai 2022
    #7
  8. Beverly
    Beverly Erfahrener User

    Eigene Suche erstellen

    So könnte dein Vorhaben umgesetzt werden:

    Code:
    Sub SummeUebertragen2()
        Dim rngSuche As Range  '<== Variable für die Suche
        With Worksheets("Liste")
            Set rngSuche = .Columns(1).Find(Worksheets("Abendessen").Range("B3"), lookat:=xlWhole)
            If Not rngSuche Is Nothing Then
                rngSuche.Offset(0, 4) = rngSuche.Offset(0, 4) + Range("F26")
                MsgBox "Erledigt!"
            End If
        End With
    End Sub
    
    1. Der Compilierungsfehler in deiner Mappe kommt deshalb, weil in der dort Rot markierten Codezeile hinter LookIn:=xlFormulas, _ der Unterstrich (hier magenta) fehlt, der den Umbruch der langen Codezeile ausführt. Den hast du aus deinem ursprünglichen Code einfach nur vergessen zu übernehmen, aber damit kann Excel natürlich nicht zurechtkommen.

    2. Es ist schon erstmal gut, wenn man als Anfänger eine Grundlage hat, nur zeichnet der Makrorekorder eben JEDEN Arbeitsschritt auf, und damit auch wenn man eine Zelle markiert/aktiviert/selektiert oder ein anderes Tabellenblatt aufruft. Deshalb sollte man im Nachhinein den aufgezeichneten Code noch entsprechend bearbeiten.

    3. Wie schon geschrieben, kann auf Select und Activate weitestgehend verzichtet werden. Dabei arbeitet man mit With-Anweisungen, wobei der Bezug zu dem Objekt (im Code das Tabellenblatt "Liste") innerhalb der With-Anweisung durch das Voranstellen eines Punktes (.) gekennzeichnet wird - das ist wichtig, denn ohne diesen Punkt würde Excel annehmen, dass man sich auf das aktuelle Objekt bezieht, was in deiner Mappe das Tabellenblatt "Abendessen" ist, da du den Code ja ausführen willst, wenn dieses aktiv ist, weil sich der Button dort befindet. Das siehst du in der Zeile Set rngSuche = .Columns(1)....

    4. Da sich alle Namen in Spalte A befinden, müssen nicht alle Zellen - also Cells.Find.... - durchsucht werden, es reicht aus, wenn das für Spalte A - also .Columns(1) - ausgeführt wird.

    5. Bei einer Suche sollte man sicherheitshalber berücksichtigen, dass ein Suchbegriff auch mal nicht vorhanden ist (falsch geschrieben oder vergessen usw.). Deshalb prüft man zuerst, ob der Suchbegriff auch wirklich gefunden wurde - das macht die If-Anweisung If Not rngSuche Is Nothing Then. Diese doppelte Verneinung hängt damit zusammen, dass man so auf dem einfachsten Weg prüfen kann, ob die Variable tatsächlich belegt ist, weil es sich hierbei um eine Range-Variable handelt.

    6. Für die Berechnung benötigst du keine extra Zelle mit Formel, das kann man direkt im Code ausführen. In der betreffenden Codezeile ist der Bezug zur Zelle F26 mit der zu addierenden Summe natürlich ohne Punkt vor Range, da sich diese Zelle im activen Tabellenblatt befinden, in dem der Code ausgeführt wird.
    Übrigens war die Formel, die dein Code in Spalte P eingetragen hat, falsch - der Bezug war auf Zelle F28 und nicht F26. Bei "Frau B" war der Bezug auf Zelle F27 und nur bei "Frau A" wäre der Bezug richtig gewesen. Das hängt mit dem Selektieren der Zelle in Spalte A zusammen, weil die Formel einen relativen Bezug der Zeilennummer zur Ausgangszeile verwendet.

    Ich hoffe, ich konnte dir die Prinzipien in meinem Code verständlich erläutern, falls nicht - einfach rückfragen.


    Eigene Suche erstellen GrußformelEigene Suche erstellen Beverly's Excel - Inn
     
    Beverly, 11. Mai 2022
    #8
    1 Person gefällt das.
  9. I AM MACO Neuer User
    Danke sehr :D ich freu mich das es geklappt hat. Ich werde mir deine Tipps zu herzen nehmen und heute abend mal nachforschen was ich dazu alles finde und lernen kann :)
     
    I AM MACO, 11. Mai 2022
    #9
  10. I AM MACO Neuer User
    Sorry habe jetzt erst gesehen das du einen eigenen Code geschrieben hast! Der ist ja Wahnsinn :D Danke Sehr!
     
    I AM MACO, 11. Mai 2022
    #10
Thema:

Eigene Suche erstellen

Die Seite wird geladen...
  1. Eigene Suche erstellen - Similar Threads - Eigene Suche erstellen

  2. "Eigene"excel-Funktion innerhalb einer Sub verwenden

    in Microsoft Excel Hilfe
    "Eigene"excel-Funktion innerhalb einer Sub verwenden: Hallo, ich möchte innerhalb einer Sub eine Berechnung mittels einer selbst erstellten Funktion durchführen. Wie kann ich die Funktion aufrufen? Grüße Reinhard Beispiel zum Verständnis Function...
  3. Benutzerdefiniertes Sortieren nach eigener Liste funktioniert nicht

    in Microsoft Excel Hilfe
    Benutzerdefiniertes Sortieren nach eigener Liste funktioniert nicht: Hallo zusammen, ich erstelle eine etymologische Datenbank zu einer Sprachgruppe in Nigeria. Die Spalte "SORTIEREN" soll dabei nach dem unten angegebenen Muster benutzerdefiniert sortiert werden....
  4. emails per vba mit eigenem Ordner speichern

    in Microsoft Outlook Hilfe
    emails per vba mit eigenem Ordner speichern: Hallo Forumgemeinde! Bin neu hier und hoffe das ihr mir bei meinem Vorhaben behilflich sein könnt. Ich möchte mit beiliegend gefundenem VBA-Code (hoffe, dass ich diesen hier überhaupt hochladen...
  5. Wert aus Datenzeile filtern & in eigene Spalte bringen

    in Microsoft Excel Hilfe
    Wert aus Datenzeile filtern & in eigene Spalte bringen: Hallo, ich möchte anhand von Ernteerträge zu gewissen Zeitpunkten (Tagen, nach Datum sortiert) welche in einer Zeile stehen, das Datum der 1. Ernte heraussortieren. Dieses soll dann in einer...
  6. Jedes Diagramm hat eigenen Verknüpfung

    in Microsoft PowerPoint Hilfe
    Jedes Diagramm hat eigenen Verknüpfung: Hallo und einen schönen guten morgen, da ich ein Freund von Automatisierung bin, habe ich einen PPT Bericht mit Excel verknüpft um diese immer Up to date zu halten. Das funktioniert auch...
  7. Änderung des eigenen Adressennamen

    in Microsoft Outlook Hilfe
    Änderung des eigenen Adressennamen: Hallo, ich wollte gerne auf Outlook wechseln und habe bereits ein MS-Konto. Meine Abonnements sind aber ausgelaufen. Mein derzeitige Outlook-Adresse eine nicht erklärbare Kombination von Zahlen...
  8. Allgemein Übersicht Strukturaufbau von Beiträgen

    in Lob, Kritik und Verbesserungsvorschläge
    Allgemein Übersicht Strukturaufbau von Beiträgen: Hallo, ich bin noch nicht allzu lange dabei, gedenke aber länger zu bleiben. Das Folgende sind Vorschläge im guten Sinne und nicht als "Meckerei" zu betrachten. In der kurzen Zeit fällt mir...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden