Office: Kopieren mit VBA bei flexiblen Kriterium

Helfe beim Thema Kopieren mit VBA bei flexiblen Kriterium in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen, nach googlen und durchforsten von 2 Büchern bin ich am Rande der Verzweiflung und hab die Hoffnung, dass mir hier jemand weiter helfen... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von kleinanna89, 6. August 2013.

  1. kleinanna89 Erfahrener User

    Kopieren mit VBA bei flexiblen Kriterium


    Hallo Zusammen,
    nach googlen und durchforsten von 2 Büchern bin ich am Rande der Verzweiflung und hab die Hoffnung, dass mir hier jemand weiter helfen kann.
    Es geht darum, bei bestimmten Bedingungen per VBA zu kopieren.

    In Blatt1 ist entweder in C19,20,21,22 ein x. In D19,20,21,22 stehen Auswahlkriterien, die flexibel sind (per DropDown).
    Wenn in C19 ein x steht, soll das Auswahlkriterium aus D19 übernommen werden.
    Dann soll in Blatt2 in der Spalte B nach dem Auswahlkriterium gesucht werden und die Spalten B:AF kopiert werden, wenn in Spalte B das Auswahlkriterium steht.
    Das Kopierte soll dann in Blatt3 ab Zelle B5 eingefügt werden (das ist kein Problem).

    Wenn in C19 kein x steht, soll in C20 geschaut werden. Der Prozess,der dann folgt, ist fast analog (bis auf eine Änderung *)
    Wenn in C20 ein x steht, soll das Auswahlkriterium aus D20 übernommen werden.
    Dann soll in Blatt2 in der Spalte C* nach dem Auswahlkriterium gesucht werden und die Spalten B:AF kopiert werden, wenn in Spalte C* das Auswahlkriterium steht.
    Das Kopierte soll dann in Blatt3 ab Zelle B5 eingefügt werden

    Für C21 und C22 soll der Vorgang analog verlaufen (bei C21 soll in Spalte G gesucht werden, bei C22 in Spalte D)

    Wenn weder in C19,20,21,22 kein x steht, soll eine MsgBox eingeblendet werden, aber das ist kein Problem ;-))

    Vielleicht hat hier jemand eine Idee bzw. kann mir weiterhelfen oder auf andere Hilfe verweisen.
    Vielen Dank und viele Grüße
    Anna
     
    kleinanna89, 6. August 2013
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi Anna,

    wie soll der Code denn ausgeführt werden - jeweils bei Eingabe von x in C19, C20, C21, C22 oder in einer Schleife über diese 4 Zellen (z.B. mit einem Button)?

    Bis später,
    Karin
     
    Beverly, 7. August 2013
    #2
  3. kleinanna89 Erfahrener User
    Hallo Karin,
    der Code soll ausgeführt werden, wenn ein Button geklickt wird.
    Was auch noch wichtig ist, ist, dass der komplette Zellinhalt mit Formatierung kopiert wird.
    Das ist mir gerade noch aufgefallen, als ich an "Schnipseln" gearbeitet hab.
    Viele Grüße
    Anna
     
    kleinanna89, 7. August 2013
    #3
  4. Beverly
    Beverly Erfahrener User

    Kopieren mit VBA bei flexiblen Kriterium

    Hi Anna,

    also so richtig ist mir dein System nicht klar, deshalb hier ein Code wie ich die Aufgabenstellung interpretiert habe:

    Code:
    Sub Kopieren()
       Dim lngZeile As Long
       Dim lngLetzte As Long
       Dim rngSuche As Range
       Dim arrSpalte()
       arrSpalte = Array(2, 3, 7, 3) '<== Spaltennummern in denen gesucht werden soll: B, C, G, D
       For lngZeile = 19 To 22
          If Cells(lngZeile, 3) = "x" Then
             ' suche Bedingung aus Spalte C in Tabelle2 in der im Array festgelegten Spalte
             Set rngSuche = Worksheets("Tabelle2").Columns(arrSpalte(lngZeile - 19)).Find(Cells(lngZeile, 4), lookat:=xlWhole, LookIn:=xlValues)
             ' Bedingung wurde gefunden
             If Not rngSuche Is Nothing Then
                With Worksheets("Tabelle3")
                   ' Zeile der letzten belegte n Zelle in Spalte B
                   lngLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 2)), .Cells(.Rows.Count, 2).End(xlUp).Row, .Rows.Count)
                   ' Bereich B:AF aus gefundener Zelle in erste freie Zeile kopieren
                   Worksheets("Tabelle2").Range("B" & rngSuche.Row & ":AF" & rngSuche.Row).Copy .Cells(lngLetzte + 1, 2)
                End With
             End If
          End If
       Next lngZeile
       Set rngSuche = Nothing
    End Sub
    Bis später,
    Karin
     
    Beverly, 7. August 2013
    #4
  5. kleinanna89 Erfahrener User
    Hallo Karin,
    zur Veranschaulichung ein paar Bilder:
    Dies ist der Auswahlbereich in Tabelle1:

    Kopieren mit VBA bei flexiblen Kriterium Tabelle1.PNG

    Dabei sind in D19-D22 jeweils DropDowns, dh das, was in den Zellen steht ist flexibel.
    In der Suche soll allerdings nur nach dem Kriterium gesucht werden, wo ein x in C steht.

    Dann soll in Tabelle 2. nach Zellen mit dem "Kriterium" gesucht werden.
    Kopieren mit VBA bei flexiblen Kriterium tabelle2.jpg
    Wenn in C19 das x Steht, soll in Spalte B gesucht werden,
    wenn in C20 das x steht, in Spalte C
    wenn in C21 das x steht, in Spalte G
    und wenn in C22 das x steht in Spalte D

    Dann sollen für alle gefundenen Zellen, die kompletten Zeilen in Tabelle3 eingefügt werden (am besten mit gleicher Formatierung)

    Ich hoffe, die erklärung bringt etwas!
    Vielen lieben Dank schon einmal
    Anna
     
    kleinanna89, 7. August 2013
    #5
  6. Beverly
    Beverly Erfahrener User
    Hi Anna,

    dann ist der Code vom Prinzip her also erst mal richtig (mit der Korrekttur, dass im Array anstelle der letzten 3 eine 4 für Spalte D stehen muss)? Hast du ihn schon mal getestet?

    Kommt das Kriterium aus Spalte B in den Such-Spalten mehrmals vor oder nur einmalig? Ich bin davon ausgegangen, dass jedes Kriterium nur einmalig vorkommt, da dies nicht so eindeutig aus deinen Beiträgen hervorgeht - "für alle gefundenen Zellen" kann sich auf Spalte B der Tabelle1 beziehen oder auf die Such-Spalten in Tabelle2. Für einen Außenstehenden, der die konkrete Arbeitsmappe nicht kennt, sind halt mehrfach auslegbare Beschreibungen Gift. :p



    Bis später,
    Karin
     
    Beverly, 7. August 2013
    #6
  7. kleinanna89 Erfahrener User
    Ja da hast du Recht und ich habe daran nicht gedacht.
    Das Kriterium kommt mehrfach vor, deshalb hat es nicht so geklappt, wie ich es vorhatte.
    Aber ich hab jetzt eine "einfachere" Lösung in dem ich keine "x" setzen lasse, sondern in C19-22 einen Button eingefügt hab, der dann das entsprechende Makro auslöst ;-)
    Vielen lieben Dank
    Anna
     
    kleinanna89, 8. August 2013
    #7
Thema:

Kopieren mit VBA bei flexiblen Kriterium

Die Seite wird geladen...
  1. Kopieren mit VBA bei flexiblen Kriterium - Similar Threads - Kopieren VBA flexiblen

  2. Per VBA Zeilen einfügen und danach in diese Texte kopieren

    in Microsoft Excel Hilfe
    Per VBA Zeilen einfügen und danach in diese Texte kopieren: Hallo zusammen, ich möchte im 1. Schritt via VBA-Code eine bestimmte, variable Anzahl Zeilen (der Wert wird immer im Reiter "Data" in der Zelle S32 ermittelt) in einem anderen Reiter namens...
  3. Excel Range als Bild in Word einfügen

    in Microsoft Excel Hilfe
    Excel Range als Bild in Word einfügen: Hallo, ich möchte gerne per Makro in einem Wordtemplate Mustergrafiken, die als Platzhalter dienen durch Bereiche in meiner Exceldatei ersetzen, die ich als Bild einfüge. Per Hand mache ich das...
  4. Zellen aus Aktiver Zeile kopieren

    in Microsoft Excel Hilfe
    Zellen aus Aktiver Zeile kopieren: Hallo zusammen, im Grunde genommen ist es wohl ganz einfach … ich weiss es aber trotzdem nicht wie es in VBA umsetze. Ich will aus einer „Aktiven Reihe“ (diese wähle ich vorher über einen...
  5. VBA: 2 Tabellenblätter Inhalte kopieren und in eine Excelmappe einfügen und als .xlsm speichern

    in Microsoft Excel Hilfe
    VBA: 2 Tabellenblätter Inhalte kopieren und in eine Excelmappe einfügen und als .xlsm speichern: Hallo Excel-Freaks, ich bin gerade mit einem Code beschäftigt und komme nicht weiter. Gewünscht wäre ein Makro: Zwei Tabellenblätter Inhalte kopieren und in eine Excelmappe einfügen und als .xlsm...
  6. VBA Zeilen kopieren mit Bedingung

    in Microsoft Excel Hilfe
    VBA Zeilen kopieren mit Bedingung: Hallo zusammen, Ich möchte per Makro Zeilen aus Tabelle2 in Tabelle3 kopieren, wenn eine Bedingung erfüllt ist. Bedingung: Der Wert in Spalte E (Tabelle2) kommt in Tabelle1 in Spalte E vor....
  7. VBA - Datensätze ans Ende einer anderen Tabelle kopieren

    in Microsoft Excel Hilfe
    VBA - Datensätze ans Ende einer anderen Tabelle kopieren: Hallo zusammen, ich habe gerade eine "Abrechnungs"-Datei für einen Kindergartenbasar erstellt. Es wäre klasse, wenn man per Schaltfläche die Datensätze aus der Tabelle "Kaeufer" ans Ende der...
  8. VBA flexibles kopieren

    in Microsoft Excel Hilfe
    VBA flexibles kopieren: Hi, Keine Ahnung ob das geht was mir im Kopf rumgeistert. Folgendes Bsp. Workbooks("Mappe3.xls").Worksheets("Tabelle2").Range("D5:D7").Copy _...
  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