Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Makro verändern / ergänzen

    Betrifft: Makro verändern / ergänzen von: Dieter D.
    Geschrieben am: 29.08.2003 20:24:44

    Einen guten Abend an alle Excel / VBA Freunde

    bin mittlerweile recht enttäuscht, habe mehrmals versucht Hilfe zu einem Makro
    zu erhalten, leider ohne den gewünschten Erfolg.
    Ich möchte ein bestehendes Makro, welches nicht von mir erstellt wurde, erweitern / verändern.
    Habe schon diverse Beispiele von „Herbers Cd“ getestet, schaffe es
    aber nicht, den Ablauf auf meine Bedürfnisse hin zu optimieren.
    Da ich nicht der VBA-Kenner bin, würde ich gerne über dieses Forum Lösungsvorschläge erhalten.
    So, hier nun der Versuch, mein Problem darzustellen:
    Mein Makro, welches Daten über einen Suchbegriff in eine „Neue
    Arbeitsmappe“ einliest, soll dahin gehend verändert werden, dass die Daten als
    neues Tabellenblatt mit in die bestehende Arbeitsmappe „SozialDaten“ kopiert wird.
    Ich stelle dieses Makro einfach mal mit ins posting, vielleicht hilft es Euch,
    mein Anliegen besser zu verstehen.

    Modul 1

    Sub Such_mich()
    Dim sPath As String
    Dim Suchtext As String
    Dim Zelle As Range
    Dim i As Long
    Dim j As Integer
    Dim KopierteZeilen()
    Dim NeueMappe As Worksheet
    Dim Arbeitsmappe As String
    Dim Schon_da As Boolean
    Suchtext = InputBox("Wonach suchen?", , "Arbeit macht Spaß ! oder ?")
    If Suchtext <> "" Then
      Arbeitsmappe = ActiveWorkbook.Name
      Workbooks.Add
      Set NeueMappe = ActiveWorkbook.ActiveSheet
      i = 2
      Workbooks(Arbeitsmappe).Activate
      Rows("2:2").Copy NeueMappe.Cells(1, 1)
      For Each Zelle In Workbooks(Arbeitsmappe).ActiveSheet.UsedRange
        If InStr(1, Zelle.Value, Suchtext, vbTextCompare) > 0 Then
          ReDim Preserve KopierteZeilen(i - 2)
          Schon_da = False
          For j = 0 To UBound(KopierteZeilen)
            If KopierteZeilen(j) = Zelle.Row Then Schon_da = True
          Next
          If Not Schon_da Then
            Rows(Zelle.Row & ":" & Zelle.Row).Copy NeueMappe.Cells(i, 1)
            i = i + 1
          End If
        End If
      Next
      NeueMappe.Activate
      Columns("A:Z").EntireColumn.AutoFit
      Range("A1").Select
    End If
    End Sub
    


    Wer ist vielleicht so freundlich und hilft mir weiter?

    Verbleibe mit freundlichen Grüßen
    Dieter
      


    Betrifft: AW: Makro verändern / ergänzen von: GerdW
    Geschrieben am: 29.08.2003 20:54:09

    Die Hilfe hier im Forum ist freiwillig, es besteht darauf kein
    Anspruch.
    Vielleicht liegst auch an der Problembeschreibung?
    Ich frage mich z.B., soll der Code in
    "die bestehende Arbeitsmappe „SozialDaten“"
    oder in einem anderen Workbook ausgeführt werden.

    Gerd


      


    Betrifft: AW: an Gert von: Dieter D.
    Geschrieben am: 29.08.2003 21:39:13

    Hallo Gerd,
    zu Punkt eins:
    es ist mir schon bewußt, daß es freiwillig ist, hier eine Hilfestellung
    zu erhalten.
    zu Punkt zwei:
    wo ist das Problem mit meiner Umschreibung?
    Ich habe, so glaube ich, jedenfalls für VBA-Kenner mein Anliegen klar
    dargestellt und beschrieben:

    "Mein Makro, welches Daten über einen Suchbegriff in eine „Neue
    Arbeitsmappe“ einliest, soll dahin gehend verändert werden, dass die Daten als
    neues Tabellenblatt mit in die bestehende Arbeitsmappe „SozialDaten“ kopiert wird".

    Ergo, mit in in die Arbeitsmappe "SozialDaten" und NICHT als "NEUE Arbeitsmappe".
    Sorry, aber genau das waren in der Vergangenheit ähnliche Fragen,
    wie DU sie gestellt hast und danach kam nichts mehr.
    Entschuldige bitte, daß ich so reagiere, aber ich denke für mein Problem sollte
    es für die "Profis" ein "Klacks" sein, mein aufgeführtes Makro abzuändern,
    aber wie Du schon sagt, es ist freiwillig.

    Ich sage trotdem
    Danke schön für die Mühe
    Dieter


      


    Betrifft: AW: an Gert von: GerdW
    Geschrieben am: 29.08.2003 22:02:37

    Nicht mal meinen Namen kannst du richtig schreiben und meine
    Frage hast du auch nicht beantwortet:
    Soll der Code in der Arbeitsmappe „SozialDaten“ oder woanders
    ausgeführt werden?

    Gerd


      


    Betrifft: AW: an Gert von: PeterW
    Geschrieben am: 29.08.2003 22:03:28

    Hallo Dieter,

    dann brauchst du die neue Mappe nicht? Reicht eine neue Tabelle in der vorhandenen Datei?

    Fragen zu einem Detailproblem sind hier kein Problem - schau dir mal die anderen Threads an, in denen es zum Teil innerhalb von 5 Minuten viele passende Antworten gibt. Wenn ein vorgegebener Code umgebaut werden soll ist es etwas zeitaufwändiger/komplizierter - soll doch funktionieren. :-)
    Auch VBA-Kenner haben eben keine funktionsfähige Glaskugel um aus einem gegebenen Code die genaue Aufgabenstellungstellung erkennen zu können. :-)

    Gruß
    Peter
    PS: beschreib mal genau, was du erreichen willst. Dürfen auch ruhig mehr als zwei Sätze sein.


      


    Betrifft: AW: an Peter - Makro ändern von: Dieter D.
    Geschrieben am: 30.08.2003 09:49:29


    Hallo Peter ,

    erst einmal vielen Dank für Deine Mühe.
    Du hast es erkannt, ich möchte keine neue Mappe, sondern nur eine zusätzliche Tabelle in der vorhandenen Datei „SozialDaten“.

    Ich versuche einmal meine Unwissendheit zu umschreiben:

    ich habe für meine Frau eine Tabelle erstellt, in die nun per Userform Daten eingetragen werden. In diesem Tabellenblatt „Tabelle1 (Meier)“ werden nun auch Berechnungen
    vorgenommen, wie z.B. das Alter, Betriebszugehörigkeit u. Kündigungsfristen.
    Des weiteren habe ich ein Blatt „Tabelle4 (Daten)“, darin stehen Daten, die ich
    für Berechnungen wiederum in Tabbelle1 (Meier) benötige (Altersberechnung / Betriebszugehörigkeit usw.)
    Diese Blätter werden teilweise noch von Makros unterstützt, so zum Beispiel die
    Altersangaben – J-M-T- mit dem Makronamen JahresBerechnung.
    Dann für die Userform und schlussendlich dieses besagte Makro „SuchMich“, welches ich nun, wenn möglich, ändern möchte.
    Das Makro mit dem Namen „SuchMich“ würde auch wie die Faust aufs Auge zu meinen Anforderungen passen, wenn eben NICHT, die von diesem Makro ausgelesenen Daten
    in einer neuen Arbeitsmappe erstellt werden.
    Mit dieser NEUEN Arbeitsmappe hätte ich dann nämlich keinen Bezug mehr zu den Daten
    und Makros, die ich ja benötige, um meine Berechnungen weiterhin durchführen zu können.
    Also glaube ich, das Makro „SuchMich“ sollte als zusätzliche Tabelle in die vorhandene Mappe integriert werden.

    Danke
    Und einen schönen Tag (Wochenende) noch
    Dieter


      


    Betrifft: AW: an Peter - Makro ändern von: PeterW
    Geschrieben am: 30.08.2003 13:22:26

    Hallo Dieter,

    habe am Code so wenig geändert wie möglich (so kannst du die Änderungen besser nachvollziehen) und das Ganze ist auch ungetestet solle aber funktionieren.

    Gruß
    Peter

    Sub Such_mich()
    Dim sPath As String
    Dim Suchtext As String
    Dim Zelle As Range
    Dim i As Long
    Dim j As Integer
    Dim KopierteZeilen()
    Dim NeueMappe As Worksheet
    Dim Arbeitsmappe As String
    Dim Schon_da As Boolean
    Suchtext = InputBox("Wonach suchen?", , "Arbeit macht Spaß ! oder ?")
    If Suchtext <> "" Then
      Arbeitsmappe = ActiveWorksheet.Name
      Worksheets.Add
      Set NeueMappe = ActiveSheet
      i = 2
      Worksheets(Arbeitsmappe).Activate
      Rows("2:2").Copy NeueMappe.Cells(1, 1)
      For Each Zelle In Worksheets(Arbeitsmappe).UsedRange
        If InStr(1, Zelle.Value, Suchtext, vbTextCompare) > 0 Then
          ReDim Preserve KopierteZeilen(i - 2)
          Schon_da = False
          For j = 0 To UBound(KopierteZeilen)
            If KopierteZeilen(j) = Zelle.Row Then Schon_da = True
          Next
          If Not Schon_da Then
            Rows(Zelle.Row & ":" & Zelle.Row).Copy NeueMappe.Cells(i, 1)
            i = i + 1
          End If
        End If
      Next
      NeueMappe.Activate
      Columns("A:Z").EntireColumn.AutoFit
      Range("A1").Select
    End If
    End Sub
    



      


    Betrifft: AW: an Peter - Makro ändern von: Dieter D.
    Geschrieben am: 30.08.2003 15:49:15

    Hallo Peter,

    erhalte die Meldung: Variable nicht definiert
    und in diesem Satz ist dann "ActiveWorksheet" farbig hinterlegt.
    - Arbeitsmappe = ActiveWorksheet.Name -

    Kannst Du hier vielleicht noch Hilfestellung leiten?

    Danke


      


    Betrifft: AW: an Peter - Makro ändern von: PeterW
    Geschrieben am: 30.08.2003 16:26:19

    Hallo Dieter,

    ändere die Zeile in
    Arbeitsmappe = ActiveSheet.Name

    Gruß
    Peter


      


    Betrifft: AW: an Peter - Makro ändern von: Dieter D.
    Geschrieben am: 30.08.2003 17:09:56

    Hei Peter,

    möchte mich recht herzlich bedanken.
    Du hast mir sehr geholfen, bin begeistert.

    Gruß
    Dieter