Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
356to360
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
356to360
356to360
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro erweitern

Makro erweitern
30.12.2003 14:07:21
Matthias
Hi zusammen,
ich möchte folgendes Artikel Suchmakro um eine Funkton erweitern. Der gefundene Artikel soll mittels eines Kopierbuttons samt Art.Nr. und Preis (spalte c,d,e) in ein anderes Blatt kopiert werden.(z.B. Tabelle3)
Wenn sich die kopierten Artikel automatisch ab der Zeile 1 Zeile für Zeile listen wäre es schön, ich kann sie aber auch mit dem Autofilter zusammen fassen wenn sie unsortiert dort landen.

Danke für Euere Hilfe
Gruß
Matthias


Sub DatenSuchen()
Dim cell As Range
Dim str As String
str = InputBox("Bitte geben Sie den Suchbegriff ein!")
If str = "" Then Exit Sub
For Each cell In Selection
If cell = str Then
cell.Select
Exit Sub
End If
Next cell
MsgBox "Suchbegriff nicht gefunden!"
End Sub

                    

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro erweitern
30.12.2003 14:19:12
Josef Ehrensberger
Hallo Matthias,

ohne genaue angaben ist das ein bisschen schwierig.

Aber probier mal dieses Makro, Du kannst es ja selber anpassen.



Sub DatenSuchen()
Dim cell As Range
Dim str As String
Dim lngE As Long
lngE = Sheets("TB2").Range("A65536").End(xlUp).Row + 1
str = InputBox("Bitte geben Sie den Suchbegriff ein!")
   If str = "" Then Exit Sub
   For Each cell In Selection
      If cell = str Then
         If MsgBox("Gefundenen Datensatz kopieren ?", _
         vbYesNo + vbExclamation, "Kopieren") = vbYes Then
         Range(Cells(cell.Row, 3), Cells(cell.Row, 5)).Copy Sheets("TB2").Cells(lngE, 1)
         Exit Sub
         End If
      End If
   Next cell
MsgBox "Suchbegriff nicht gefunden!"
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5


Gruß Sepp
Anzeige
AW: Makro erweitern
30.12.2003 14:48:05
Matthias
Hallo Sepp,
Deine Erweiterung läuft schon fast rund.
Bevor die Abfrage zum Kopieren kommt, sollte der gefundene Artikel sichtbar sein.
So wie die Excel eigene Suchen Funktion arbeitet. Du gibst den Begriff ein und der Zellzeiger springt in die Zeile.
Wenn ich bei der Kopierabfrage auf nein drücke, sucht der Makro und sagt mir dann, daß er den Artikel nicht gefunden hat.
Kannst Du mir bitte die Programmierung noch dahingehend ändern??

Danke
Matthias
AW: Makro erweitern
30.12.2003 15:24:09
Josef Ehrensberger
Hi Matthias,

versuch mal wie Dir das gefällt.



Sub DatenSuchenKopieren()
'von J.Ehrensberger
Dim bereich As Range
Dim rng As Range
Dim sAddress As String
Dim sFind As String
Dim lngE As Long
lngE = Sheets("TB2").Range("A65536").End(xlUp).Row + 1   'Tabellenname anpassen
Set bereich = Sheets("TB1").Range("C1:C1000")
'Suchbereich - Tabellenname und Spalte(Bereich) anpassen
sFind = InputBox("Bitte geben Sie den Suchbegriff ein!", "Suche", "Suchtext")
   If sFind = "" Then Exit Sub
Set rng = bereich.Find( _
   what:=sFind, _
   lookat:=xlWhole, _
   LookIn:=xlValues)
   If Not rng Is Nothing Then
   sAddress = rng.Address
      Do
      rng.Activate
         If MsgBox("Wollen Sie den gefundenen Datensatz kopieren" & vbLf & _
         "und die Suche abbrechen?", vbYesNo + vbExclamation, "Kopieren") = vbYes Then
         Range(Cells(rng.Row, 3), Cells(rng.Row, 5)).Copy Sheets("TB2").Cells(lngE, 1)
         'Tabellenblattname und Spalten von - bis anpassen
         Exit Sub
         Else
         Set rng = Cells.FindNext(after:=ActiveCell)
            If rng.Address = sAddress Then Exit Do
         End If
      Loop
   End If
MsgBox prompt:="Suche nach "" " & sFind & " "" wurde beendet!", _
   Buttons:=vbOKOnly + vbExclamation
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5


Ich bin jetzt eine weile nicht am PC, schau aber später wieder vorbei.

Gruß Sepp
Anzeige
AW: Makro erweitern
30.12.2003 16:23:57
Matthias
Hallo Sepp,
Dein Makro ist mächtig!
Kann die Suchbox nachdem ich bei kopieren auf "ja" oder "nein" gedrückt habe wieder für eine nächste Suche bereitstehen? Meistens werden mehrere Artikel gesucht und übernommen.
Ansonsten... supergut gemacht.

Gruß
Matthias
AW: Makro erweitern
30.12.2003 16:51:39
Josef Ehrensberger
Hallo Matthias,

ich hab' das Makro nach Deinem Wunsch angepasst.
Ich hoffe es gefällt Dir.



Sub DatenSuchenKopieren()
'Suchabfrage mit der möglichkeit, die Fundstelle mit
'weiteren daten in ein anderes Blatt zu kopieren
'Suchabfrage wird bis zum Abbruch wiederholt
'von J.Ehrensberger
Dim bereich As Range       'Suchbereich
Dim rng As Range
Dim sAddress As String
Dim sFind As String        'Suchbegriff
Dim lngE As Long           'Erste leere Zeile im Zielblatt
lngE = Sheets("TB2").Range("A65536").End(xlUp).Row + 1   'Tabellenname anpassen
Set bereich = Sheets("TB1").Range("C1:C1000")
'Suchbereich - Tabellenname und Spalte(Bereich) anpassen
   Do 'Schleife für Suchabfrage
   sFind = InputBox("Bitte geben Sie den Suchbegriff ein!", "Suche", "Suchtext")
      If sFind = "" Then Exit Do
   Set rng = bereich.Find(What:=sFind, LookAt:=xlWhole, LookIn:=xlValues)
            'LookAt:=xlPart - wenn auch Teilstring gefunden werden soll
      If Not rng Is Nothing Then
      sAddress = rng.Address
         Do 'Schleife für aktuellen Suchbegriff
         rng.Activate
            If MsgBox("Wollen Sie den gefundenen Datensatz kopieren" & vbLf & _
            "und die Suche nach " & sFind & " abbrechen?", _
            vbYesNo + vbQuestion, "Kopieren") = vbYes Then
            Range(Cells(rng.Row, 3), Cells(rng.Row, 5)).Copy Sheets("TB2").Cells(lngE, 1)
                              'Tabellenblattname und Spalten von - bis anpassen
            lngE = lngE + 1   'Zeilenzähler erhöhen
            Exit Do  'Innere Schleife verlassen
            Else
            Set rng = Cells.FindNext(after:=rng)
               If rng.Address = sAddress Then Exit Do 'Schleife bei erreichen des ersten
                                                      'Suchbegriffes verlassen
            End If
         Loop  'Umkehrpunkt der inneren Schleife
      End If
''Info über Ende der Suchabfrage, bei Bedarf Auskommentierung entfernen
'   MsgBox "Suche nach "" " & sFind & " "" wurde beendet!", _
'      vbOKOnly + vbExclamation, "Suche Beendet"
   Loop  'Umkehrpunkt der äusseren Schleife
End Sub


     Code eingefügt mit Syntaxhighlighter 2.5


Die MsgBox am Ende habe ich auskommentiert, wenn Du sie sehen möchtest,
dann einfach die Hochkommas am Zeilenanfang wegmachen.

Gruß Sepp
Anzeige
supero, Danke Dir!!! Guten Rutsch ins Neue Jahr
30.12.2003 18:31:05
Matthias
gruß
Matthias
auch Dir einen guten Rutsch und Danke für's FB o.T
30.12.2003 19:08:58
Josef Ehrensberger
/

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige