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. Outlook Kontakte eigene Felder

    in Microsoft Outlook Hilfe
    Outlook Kontakte eigene Felder: Ich möchte für unser Unternehmen im Outlook ein Kontaktebuch aus einer Excel-Datei anlegen, dafür sind aber Informationen wie "Vertragsbeginn" auch wichtig (die Daten der Vertragsbeginne sollen...
  3. Terminplanungsassistent zeigt eigene Termine nicht an

    in Microsoft Outlook Hilfe
    Terminplanungsassistent zeigt eigene Termine nicht an: Hallo zusammen, im Terminplanungsassistent werden normalerweise die Termine aller Teilnehmer angezeigt. Dies funktioniert bei mir auch, jedoch nur bis zu 2 Monaten im Voraus. Darüber hinaus kann...
  4. Unterformular mit eigener ID

    in Microsoft Access Hilfe
    Unterformular mit eigener ID: Hallo Zusammen, ich bin ein Neuling und brauche eure Hilfe. Ich habe in der suche bereits nachgeschaut aber bisher nichts gefunden.. Ich bin gerade dabei eine Kleine Datenbank aufzubauen. Hier...
  5. Bedingte Formatierung abhängig vom eigenen Feldnamen

    in Microsoft Access Hilfe
    Bedingte Formatierung abhängig vom eigenen Feldnamen: Hallo zusammen, ich habe ein Endlosformular für die monatsweise Anzeige von Mitarbeiter-Schichtmodellen. Das bedeutet 31 Textfelder für max. 31 Tage eines Monats, die von "T1" bis "T31" heißen....
  6. Eigenes Video in Videokonferenz groß

    in Microsoft Teams Hilfe
    Eigenes Video in Videokonferenz groß: Hallo, ich bräuchte einmal Hilfe bezüglich der Videoanzeige in Videokonferenzen: Gerne hätten wir unser eigenes Video in einer großen Ansicht und nicht nur als kleines Fenster unten rechts. Ich...
  7. Bei MS Teams keinen Zugriff auf eig. Organisation

    in Microsoft Teams Hilfe
    Bei MS Teams keinen Zugriff auf eig. Organisation: Hallo, beim Start von Teams kann ich nicht auf meine "eigene Organisation" zugreifen. Dafür besteht die Möglichkeit bei zwei Organisationen anzumelden, wo ich "Gast" bin. Und die Anmeldung dort...
  8. Nur eigene Aufgaben aus Planner Kalender (in Teams) im Outlook Kalender darstellen

    in Microsoft Teams Hilfe
    Nur eigene Aufgaben aus Planner Kalender (in Teams) im Outlook Kalender darstellen: Hallo! In Kürze: Ich würde gerne alle mir im Planner zugeteilten Aufgaben auch in meinen Outlookkalender sehen, um sie dann in Teams auch im allgemeinen Kalender zu sehen. Die längere Version:...
  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