Supportnet / Forum / Tabellenkalkulation
Was für ein Makro brauche ich?
Frage
Hallo alle zusammen,
ich habe in Makro programmieren keine so große Ahnung, deshalb brauch ich eure Hilfe. Und zwar möchte ich meine EXCEL-Tabelle nach einem bestimmten Wert durchsuchen und die Zeile die den Wert enthält mit der Autofilter-funktion ausfiltern.
In Zelle C2 steht mein Suchwort und mit dem Button "suchen" möchte ich die Suche starten. Mein Makro sieht bis jetzt so aus:
Sub suchen()
Range("C2").Select
SendKeys "^c"
SendKeys "^f"
SendKeys "^v"
SendKeys "~"
SendKeys "{down}"
SendKeys "~"
SendKeys "{esc}"
SendKeys "{F2}"
SendKeys "{esc}"
Dim SpNr As Integer
Dim Such As String
AutoFilterMode = False
SpNr = ActiveCell.Column
Such = ActiveCell.Value
Selection.AutoFilter Field:=SpNr, Criteria1:=Such, Operator:=xlAnd
End Sub
Bis jetzt siehts so aus, dass ich den Wert in C2 kopiere, das Suchenfenster öffne, den kopierten wert einfüge, suche und das Suchenfenster danach wieder schließe. Jetzt ist das Feld mit dem gesuchten Wert markiert, aber die Autofilter-Funktion filtert nicht die Tabelle.
Wenn ich das alles Manuel mache und dieses Makro extra starte funktionierts...
Dim SpNr As Integer
Dim Such As String
AutoFilterMode = False
SpNr = ActiveCell.Column
Such = ActiveCell.Value
Selection.AutoFilter Field:=SpNr, Criteria1:=Such, Operator:=xlAnd
Bitte HELFT mir.
Antwort 1 von coros
Hallo Diminic,
kopiere nachfolgendes Makro in ein StandardModul und starte es über z.B. eine Befehlsschaltfläche.
Mit dem Makro wird der Bereich "A3:IV65536" nach dem Suchbegriff aus Zelle C2 durchsucht. Wenn der Suchbegriff gefunden wurde, wird die Spaltenindexnummer, in der sich der gefundenen Begriff befindet, in die Variable "FindColumn " geschrieben und danach wird für den Bereich A3:IV65536 der Autofilter markiert und der gefundene Begriff gefiltert.
Ich hoffe, Du meintest das so. Bei Fragen melde Dich bitte.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
kopiere nachfolgendes Makro in ein StandardModul und starte es über z.B. eine Befehlsschaltfläche.
Option Explicit
Sub Suchen_und_Filtern()
Dim Suchbegriff As Range, Addresse As String, FindColumn As Integer
Dim Bereich As Range
Application.ScreenUpdating = False
Set Bereich = Range("A3:IV65536")
Bereich.AutoFilter
With Bereich
Set Suchbegriff = .Find(What:=Range("C2"), LookIn:=xlValues)
If Not Suchbegriff Is Nothing Then
Addresse = Suchbegriff.Address
FindColumn = Suchbegriff.Column
Do
Set Suchbegriff = .FindNext(Suchbegriff)
Loop While Not Suchbegriff Is Nothing And Suchbegriff.Address <> Addresse
End If
End With
Bereich.AutoFilter Field:=FindColumn, Criteria1:=Range("C2")
End SubMit dem Makro wird der Bereich "A3:IV65536" nach dem Suchbegriff aus Zelle C2 durchsucht. Wenn der Suchbegriff gefunden wurde, wird die Spaltenindexnummer, in der sich der gefundenen Begriff befindet, in die Variable "FindColumn " geschrieben und danach wird für den Bereich A3:IV65536 der Autofilter markiert und der gefundene Begriff gefiltert.
Ich hoffe, Du meintest das so. Bei Fragen melde Dich bitte.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von dominic_kammerer
DAS FEEDBACK.
Absolut genial.
Danke für die sehr schnelle und sehr exakte Antwort. Hat alles 1A geklappt.
Absolut genial.
Danke für die sehr schnelle und sehr exakte Antwort. Hat alles 1A geklappt.
Antwort 3 von dominic_kammerer
Hallo Oliver,
hab noch ein kleines Problemchen festgestell. Ich habe in einer Zelle mehrere Artikelnummern, z.B. 430; 529; 221
kann man die Suchfunktion so ändern, dass er mir die Zeile herausfiltert auch wenn ich nur eine Artikelnummer angebe z.B. 529 ?
Im Moment muss ich den genauen Zellinhalt suchen, sonst filtert er mir nicht die Zeile heraus.
Gruß Dominic
hab noch ein kleines Problemchen festgestell. Ich habe in einer Zelle mehrere Artikelnummern, z.B. 430; 529; 221
kann man die Suchfunktion so ändern, dass er mir die Zeile herausfiltert auch wenn ich nur eine Artikelnummer angebe z.B. 529 ?
Im Moment muss ich den genauen Zellinhalt suchen, sonst filtert er mir nicht die Zeile heraus.
Gruß Dominic
Antwort 4 von coros
Hallo Dominic,
versuche es mal mit nachfolgendem Makro. Kopiere es wieder in ein StandardModul.
Bei Fargen melde Dich wieder.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
versuche es mal mit nachfolgendem Makro. Kopiere es wieder in ein StandardModul.
Option Explicit
Sub Suchen_und_Filtern()
Dim Suchbegriff As Range, Addresse As String, FindColumn As Integer
Dim Bereich As Range, Fundtext As String
Application.ScreenUpdating = False
Set Bereich = Range("A3:IV65536")
Bereich.AutoFilter
With Bereich
Set Suchbegriff = .Find(What:=Range("C2"), LookIn:=xlValues)
If Not Suchbegriff Is Nothing Then
Addresse = Suchbegriff.Address
FindColumn = Suchbegriff.Column
Fundtext = Suchbegriff.Value
Do
Set Suchbegriff = .FindNext(Suchbegriff)
Loop While Not Suchbegriff Is Nothing And Suchbegriff.Address <> Addresse
End If
End With
Bereich.AutoFilter Field:=FindColumn, Criteria1:=Fundtext
End SubBei Fargen melde Dich wieder.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 5 von dominic_kammerer
Hallo Oliver,
so jetzt bin ich endlos glücklich. Danke für deine hilfreichen Tipps. Nun funktioniert es so wie ich mir das vorgestellt habe.
Gruß Dominic
so jetzt bin ich endlos glücklich. Danke für deine hilfreichen Tipps. Nun funktioniert es so wie ich mir das vorgestellt habe.
Gruß Dominic
Antwort 6 von dominic_kammerer
Hallo Oliver,
hab noch ne Kleinigkeit. Wäre es möglich die gefilterte Zeile von Spalte B nach Q zu markieren und dann in ein anderes Tabellenblatt z.B. "Lagerverwaltung" in Zelle C13 zu kopieren. Was dann noch super währe wenn ich die Zeile dort dann verändern könnte und mit einem "Speichern" Button wieder in die Tabelle einfügen könnte.
Am wichtigsten ist mir aber wie zu beginn geschrieben...die gefilterte Zeile von Spalte B nach Q zu markieren ...
Gruß Dominic
hab noch ne Kleinigkeit. Wäre es möglich die gefilterte Zeile von Spalte B nach Q zu markieren und dann in ein anderes Tabellenblatt z.B. "Lagerverwaltung" in Zelle C13 zu kopieren. Was dann noch super währe wenn ich die Zeile dort dann verändern könnte und mit einem "Speichern" Button wieder in die Tabelle einfügen könnte.
Am wichtigsten ist mir aber wie zu beginn geschrieben...die gefilterte Zeile von Spalte B nach Q zu markieren ...
Gruß Dominic
Antwort 7 von coros
Hallo Diminic,
mit nachfolgendem Code, wird Dir der Bereich B:Q der gefilterten Zeile kopiert und in Blatt "Lagerverwaltung" in Zelle C13 eingefügt.
Den 2. Teil Deiner Frage habe ich nicht verstanden. Wohin soll denn die Zeile wieder geschrieben werden (Bereichsangabe)?
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
mit nachfolgendem Code, wird Dir der Bereich B:Q der gefilterten Zeile kopiert und in Blatt "Lagerverwaltung" in Zelle C13 eingefügt.
Option Explicit
Sub Suchen_und_Filtern()
Dim Suchbegriff As Range, Addresse As String, FindColumn As Integer
Dim Bereich As Range, Fundtext As String, FindRow As Long
Application.ScreenUpdating = False
Set Bereich = Range("A3:IV65536")
Bereich.AutoFilter
With Bereich
Set Suchbegriff = .Find(What:=Range("C2"), LookIn:=xlValues)
If Not Suchbegriff Is Nothing Then
Addresse = Suchbegriff.Address
FindColumn = Suchbegriff.Column
Fundtext = Suchbegriff.Value
FindRow = Suchbegriff.Row
Do
Set Suchbegriff = .FindNext(Suchbegriff)
Loop While Not Suchbegriff Is Nothing And Suchbegriff.Address <> Addresse
End If
End With
Bereich.AutoFilter Field:=FindColumn, Criteria1:=Fundtext
Range(Cells(FindRow, 2), Cells(FindRow, 17)).Copy
Sheets("Lagerverwaltung").Range("C13").PasteSpecial
Application.CutCopyMode = False
End Sub
Den 2. Teil Deiner Frage habe ich nicht verstanden. Wohin soll denn die Zeile wieder geschrieben werden (Bereichsangabe)?
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 8 von dominic_kammerer
Hallo Oliver,
danke erst einmal für deine schnelle Antwort.
Die veränderte Zeile soll wieder in die gleiche Position der Tabelle eingefügt werden in der sie herauskopiert wurde.
Vieleicht hilft dir folgende Info noch.
Die Spalte H ist in der Hauptabelle durchnummeriert z.B. L0001, L0002,L0003 usw.
Da die Spalte H der Hauptabelle mit der Spalte I der Bearbeitungstabelle identisch ist, könnte man doch die Zeile in der Hauptabelle genau orten und einfügen.
Hauptabelle:
Spalte H
Artikelnr I Hersteller I Lagernummer I usw.
402 XXX L0001
501 YYY L0002
620 ZZZ L0003
Bearbeitungstabelle:
Spalte I
Artikelnr I Hersteller I Lagernummer I usw.
501 YYA L0002
In der Bearbeitungstabelle wurde die Zeile geändert und soll jetzt wieder in die gleiche position der Hauptabelle eingefügt werden. Ergebnis:
Hauptabelle:
Artikelnr I Hersteller I Lagernummer I usw.
402 XXX L0001
501 YYA L0002
620 ZZZ L0003
Gruß Dominic
danke erst einmal für deine schnelle Antwort.
Die veränderte Zeile soll wieder in die gleiche Position der Tabelle eingefügt werden in der sie herauskopiert wurde.
Vieleicht hilft dir folgende Info noch.
Die Spalte H ist in der Hauptabelle durchnummeriert z.B. L0001, L0002,L0003 usw.
Da die Spalte H der Hauptabelle mit der Spalte I der Bearbeitungstabelle identisch ist, könnte man doch die Zeile in der Hauptabelle genau orten und einfügen.
Hauptabelle:
Spalte H
Artikelnr I Hersteller I Lagernummer I usw.
402 XXX L0001
501 YYY L0002
620 ZZZ L0003
Bearbeitungstabelle:
Spalte I
Artikelnr I Hersteller I Lagernummer I usw.
501 YYA L0002
In der Bearbeitungstabelle wurde die Zeile geändert und soll jetzt wieder in die gleiche position der Hauptabelle eingefügt werden. Ergebnis:
Hauptabelle:
Artikelnr I Hersteller I Lagernummer I usw.
402 XXX L0001
501 YYA L0002
620 ZZZ L0003
Gruß Dominic
Antwort 9 von coros
Hallo Dominic,
was für Daten befinden sich noch in dem Barbeitungsblatt? Nur die kopierte Zeile oder auch noch andere Daten. Ich frage nur, ob die Möglichkeit dort besteht, die Zeilennummer des gefundenen Begriffs, die ja bereits ermittelt wurde, zwischenzuspeichern? Man kann zwar eine Variable erzeugen, in der die Zeilennummer gespeichert würde, aber wenn die Datei mal geschlossen wird, ohne dass die Zeile wieder zurück übertragen wurde, ist die Zeilennummer weg.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
was für Daten befinden sich noch in dem Barbeitungsblatt? Nur die kopierte Zeile oder auch noch andere Daten. Ich frage nur, ob die Möglichkeit dort besteht, die Zeilennummer des gefundenen Begriffs, die ja bereits ermittelt wurde, zwischenzuspeichern? Man kann zwar eine Variable erzeugen, in der die Zeilennummer gespeichert würde, aber wenn die Datei mal geschlossen wird, ohne dass die Zeile wieder zurück übertragen wurde, ist die Zeilennummer weg.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 10 von dominic_kammerer
Hallo Oliver,
dort befindet sich nur die kopierte Zeile die bearbeitet werden soll.
Gruß Dominic
dort befindet sich nur die kopierte Zeile die bearbeitet werden soll.
Gruß Dominic
Antwort 11 von coros
Hallo Dominic,
nachfolgende Makros filtern und kopieren und geben zusätzlich im Tabellenblatt "Lagerverwaltung" in Zelle A1 die Zeilennummer der Fundzeile aus. Mit dem 2. Makro kannst Du dann die Zeile wieder zurück übertragen.
Blattnamen müssen eventuell angepasst werden.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
nachfolgende Makros filtern und kopieren und geben zusätzlich im Tabellenblatt "Lagerverwaltung" in Zelle A1 die Zeilennummer der Fundzeile aus. Mit dem 2. Makro kannst Du dann die Zeile wieder zurück übertragen.
Blattnamen müssen eventuell angepasst werden.
Option Explicit
Sub Suchen_und_Filtern()
Dim Suchbegriff As Range, Addresse As String, FindColumn As Integer
Dim Bereich As Range, Fundtext As String, FindRow As Long
Application.ScreenUpdating = False
Set Bereich = Range("A3:IV65536")
Bereich.AutoFilter
With Bereich
Set Suchbegriff = .Find(What:=Range("C2"), LookIn:=xlValues)
If Not Suchbegriff Is Nothing Then
Addresse = Suchbegriff.Address
FindColumn = Suchbegriff.Column
Fundtext = Suchbegriff.Value
FindRow = Suchbegriff.Row
Do
Set Suchbegriff = .FindNext(Suchbegriff)
Loop While Not Suchbegriff Is Nothing And Suchbegriff.Address <> Addresse
End If
End With
Bereich.AutoFilter Field:=FindColumn, Criteria1:=Fundtext
Range(Cells(FindRow, 2), Cells(FindRow, 17)).Copy
Sheets("Lagerverwaltung").Range("C13").PasteSpecial
Sheets("Lagerverwaltung").Range("A1") = FindRow
Application.CutCopyMode = False
End Sub
Sub Wert_zurück()
Sheets("Lagerverwaltung").Range("C13:R13").Copy
Sheets("Tabelle1").Cells(Sheets("Lagerverwaltung").Range("A1"), 2).PasteSpecial
End SubMfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 12 von dominic_kammerer
Hallo Oliver,
tip top gelöst, wie gewohnt. Genau so hab ich das gemeint.Vielen Dank.
Gruß Dominic
tip top gelöst, wie gewohnt. Genau so hab ich das gemeint.Vielen Dank.
Gruß Dominic
Antwort 13 von dominic_kammerer
Hallo Oliver,
nochmal ne Frage. Kann man auch nur in einer Spalte suchen, z.B. Set Bereich = Range("B4:B65536")?
Gruß Dominic
nochmal ne Frage. Kann man auch nur in einer Spalte suchen, z.B. Set Bereich = Range("B4:B65536")?
Gruß Dominic
Antwort 14 von coros
Hallo Dominic,
ja, kann man. Dann solltest Du in dem Makro "" aber vor der Zeile
die Zeile
einfügen, damit es nicht zu einem Laufzeitfehler kommt.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
ja, kann man. Dann solltest Du in dem Makro "" aber vor der Zeile
Bereich.AutoFilter Field:=FindColumn, Criteria1:=Fundtextdie Zeile
If Fundtext = "" Then Exit Subeinfügen, damit es nicht zu einem Laufzeitfehler kommt.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 15 von dominic_kammerer
Hallo Oliver,
danke für deine schnelle Antwort. Es hat aber leider nicht geklappt. Es kommt die Fehlermeldung:
"Die Autofilter-Methode des Ranges-Objektes konnte nicht ausgeführt werden"
Das Makro sieht nach ein paar Veränderungen nun so aus:
Sub sucheArtkl()
ActiveWindow.ActivateNext
Sheets("Lager").Select
Dim Suchbegriff As Range, Addresse As String, FindColumn As Integer
Dim Bereich As Range, Fundtext As String, FindRow As Long
Application.ScreenUpdating = False
Set Bereich = Range("B4:B65536")
Bereich.AutoFilter
With Bereich
Set Suchbegriff = .Find(What:=Range("´Lager KAMMERERGmbH.xls´!Artikelsuch"), LookIn:=xlValues)
If Not Suchbegriff Is Nothing Then
Addresse = Suchbegriff.Address
FindColumn = Suchbegriff.Column
Fundtext = Suchbegriff.Value
FindRow = Suchbegriff.Row
Do
Set Suchbegriff = .FindNext(Suchbegriff)
Loop While Not Suchbegriff Is Nothing And Suchbegriff.Address <> Addresse
End If
End With
If Fundtext = "" Then Exit Sub
Bereich.AutoFilter Field:=FindColumn, Criteria1:=Fundtext
Range(Cells(FindRow, 2), Cells(FindRow, 15)).Copy
Sheets("Lager").Range("N1") = FindRow
ActiveWindow.ActivateNext
Sheets("Lagerverwaltung").Range("C15").PasteSpecial
Application.CutCopyMode = False
Sheets("Lagerverwaltung").Select
Range("D10").Select
Selection.ClearContents
ActiveWindow.ActivateNext
Selection.AutoFilter
ActiveWorkbook.Save
ActiveWindow.ActivateNext
End Sub
Gruß Dominic
danke für deine schnelle Antwort. Es hat aber leider nicht geklappt. Es kommt die Fehlermeldung:
"Die Autofilter-Methode des Ranges-Objektes konnte nicht ausgeführt werden"
Das Makro sieht nach ein paar Veränderungen nun so aus:
Sub sucheArtkl()
ActiveWindow.ActivateNext
Sheets("Lager").Select
Dim Suchbegriff As Range, Addresse As String, FindColumn As Integer
Dim Bereich As Range, Fundtext As String, FindRow As Long
Application.ScreenUpdating = False
Set Bereich = Range("B4:B65536")
Bereich.AutoFilter
With Bereich
Set Suchbegriff = .Find(What:=Range("´Lager KAMMERERGmbH.xls´!Artikelsuch"), LookIn:=xlValues)
If Not Suchbegriff Is Nothing Then
Addresse = Suchbegriff.Address
FindColumn = Suchbegriff.Column
Fundtext = Suchbegriff.Value
FindRow = Suchbegriff.Row
Do
Set Suchbegriff = .FindNext(Suchbegriff)
Loop While Not Suchbegriff Is Nothing And Suchbegriff.Address <> Addresse
End If
End With
If Fundtext = "" Then Exit Sub
Bereich.AutoFilter Field:=FindColumn, Criteria1:=Fundtext
Range(Cells(FindRow, 2), Cells(FindRow, 15)).Copy
Sheets("Lager").Range("N1") = FindRow
ActiveWindow.ActivateNext
Sheets("Lagerverwaltung").Range("C15").PasteSpecial
Application.CutCopyMode = False
Sheets("Lagerverwaltung").Select
Range("D10").Select
Selection.ClearContents
ActiveWindow.ActivateNext
Selection.AutoFilter
ActiveWorkbook.Save
ActiveWindow.ActivateNext
End Sub
Gruß Dominic
Antwort 16 von coros
Hallo Dominic,
was soll denn das hinter "What" in der Zeile
bedeuten.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
was soll denn das hinter "What" in der Zeile
Set Suchbegriff = .Find(What:=Range("´Lager KAMMERERGmbH.xls´!Artikelsuch"), LookIn:=xlValues)bedeuten.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 17 von dominic_kammerer
Hallo Oliver,
wenn du das - ("´Lager KAMMERERGmbH.xls´!Artikelsuch") - meinst. Ich habe die Tabelle aufgeteilt. Einmal die Tabelle in der ich die Suche starte und die Zeile hereinkopiere die ich ändern möchte und in der Zweiten Tabelle habe ich nur die Daten. Ich wechsle von der Suchtabelle in die Datentabelle, starte die Suche wobei das Suchwort in dem - Set Suchbegriff = .Find(What:=Range - Befehl auf die Suchetabelle verweist.
("´Lager KAMMERERGmbH.xls´! - ist die Suchetabelle
Artikelsuch - ist die Zelle die ich so benannt habe
Das Makro funktioniert so lange ich den Suchebereich von B4:N65536 belasse aber sobald ich den Suchebereich verkleinere wie hier - Set Bereich = Range("B4:B65536") - geht es nicht mehr.
Ich hoffe es ist einigermaßen verständlich geschrieben.
Gruß Dominic
wenn du das - ("´Lager KAMMERERGmbH.xls´!Artikelsuch") - meinst. Ich habe die Tabelle aufgeteilt. Einmal die Tabelle in der ich die Suche starte und die Zeile hereinkopiere die ich ändern möchte und in der Zweiten Tabelle habe ich nur die Daten. Ich wechsle von der Suchtabelle in die Datentabelle, starte die Suche wobei das Suchwort in dem - Set Suchbegriff = .Find(What:=Range - Befehl auf die Suchetabelle verweist.
("´Lager KAMMERERGmbH.xls´! - ist die Suchetabelle
Artikelsuch - ist die Zelle die ich so benannt habe
Das Makro funktioniert so lange ich den Suchebereich von B4:N65536 belasse aber sobald ich den Suchebereich verkleinere wie hier - Set Bereich = Range("B4:B65536") - geht es nicht mehr.
Ich hoffe es ist einigermaßen verständlich geschrieben.
Gruß Dominic

