Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Suchmakro - Zellen ueberspringen
#1
Hallo Excel Profis,
 
ich habe ein kleines Makro geschrieben, dass mir aus einer Tabelle einen Wert kopiert, in einer zweiten sucht und dann so lange nach unten sucht bis ein Datum steht. Dieses Datum wird kopiert und wieder in Tabelle 1 uebertragen. Funktioniert so weit auch sehr zuverlaessig. ABER: Sobald in Tabelle 1 ein Wert steht, der nicht in Tabelle steht steigt das Makro aus. Irgendwie bekomme ich's nicht hin dann den Wert einfach zu ueberspringen. Ich habe eine kleine Beispiel Datei erstellt, die das Problem wahrscheinlich am besten erklaert. Der Buchstabe j ist nur im Tabelle 1 jedoch nicht in Tabelle 2 vorhanden.
Ergebnis sollte sein, dass das Makro auch dann fortgefuehrt wird wenn der Wert aus Tabellenblatt 1 nicht in Blatt 2 zu finden ist.

Vielen Dank schon einmal!


Angehängte Dateien
.xlsm   Suchmakro.xlsm (Größe: 17,93 KB / Downloads: 3)
Antworten Top
#2
Hallo,

ich habe Dein Makro etwas zusammengestaucht (könnte man bei dem Makro fast wörtlich nehmen Blush ) und Deinen Wunsch eingearbeitet.

Statt Deines bisherigen Codes nimmst Du unten stehenden:


Code:
Sub Makro1()

Dim i As Long, lngZ As Long, j As Long 'Zählvariablen als Long deklariert (Zahlen im bestimmten Bereich)
Dim lngLetzte As Long 'Variable für eine Zahl, wird mit der letzten belegten Zeilennummer belegt
Dim strgSuchtext As String 'enstspricht deiner Variablen c
Dim rngFund As Range 'RngFund ist die Fundzelle in der der Suchtext gefunden wurde


lngZ = Sheets("Tabelle1").UsedRange.SpecialCells(xlCellTypeLastCell).Row
'Application.ScreenUpdating = False

For i = 4 To lngZ
 With Sheets("Tabelle2")
   lngLetzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
   strgSuchtext = Sheets("Tabelle1").Cells(i, 1).Value
   Set rngFund = .Cells.Find(what:=strgSuchtext, LookIn:=xlValues, lookat _
         :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
         False, SearchFormat:=False)
   If Not rngFund Is Nothing Then
       j = rngFund.Row
       Do
         j = j + 1
         If IsDate(.Cells(j, rngFund.Column)) Then Sheets("Tabelle1").Cells(i, 6) = .Cells(j, rngFund.Column)
       Loop Until IsDate(.Cells(j, rngFund.Column)) = True Or j > lngLetzte
   End If
 End With
Next
       
End Sub

Der Code kann in ein allgemeines Modul eingefügt werden und unabhängig des aktiven Blattes aus jedem Blatt heraus aufgerufen werden.
Gesucht werden immer Werte aus Tabelle1 in Tabelle2.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • karllama
Antworten Top
#3
Wow, vielen Dank!
Nicht nur, dass das Makro jetzt vollstaendig tut was es soll, es ist auch noch um Welten schneller als zuvor. Da erkennt man dann doch den Unterschied zwischen 'Trial and Error' und einer vernuenftigen Loesung!

Vielen Dank fuer die kompetente und schnelle Loesung!
Antworten Top
#4
Hallo,


ich hatte jetzt das



Code:
Application.ScreenUpdating = True


.........Code

Application.ScreenUpdating = False


nicht eingebaut, weil ich davon ausging, dass Du es selber hinbekommst.
Gruß Atilla
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste