Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1184to1188
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
Inhaltsverzeichnis

Zelle finden und selektieren

Zelle finden und selektieren
Kurt
Guten Morgen zusammen,
ich habe eine Tabelle in der in der Spalte "A" ab Zeile 4
Begriffe stehen.
z.b. Tische, Stühle, Schrank etc.
daneben in der Spalte B bis E stehen Preise Auftragsnummer etc.
Nun möchte ich gern das in der Spalte A nach diesem Text gesucht wird, z.b Tisch1 und der Bereich bis
Spalte E soll selektiert werden um später Auszuschneiden oder zu Kopieren.
Dazu evtl die Info, ich muss + 1 Zeile dazu haben, da hier die Summen stehen.
In der Summenzeile ist allerdings die Zelle in der Spalte A Leer !
2. Wenn ich die selktieren Bereich kopiert habe, möcht ich gern die Leerzeilen
bis zum Ende der gefüllten Spalte A löschen.
mfg Kurt P

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Bsp Mappe
06.11.2010 10:13:07
CitizenX
Hallo Kurt,
lade mal bitte ein Bsp Mappe hoch.
Danke
Grüße
Stefffen
AW: Zelle finden und selektieren
06.11.2010 12:02:03
Tino
Hallo,
vielleicht meinst Du so.
Dim varRow, strSuchBegriff$
strSuchBegriff = "Tisch"
With Sheets("Tabelle1").UsedRange
varRow = Application.Match(strSuchBegriff, .Columns(1), 0)
If IsNumeric(varRow) Then
Application.Goto .Cells(varRow, 1).Resize(2, 5)
Else
MsgBox "nix gefunden"
End If
End With
Gruß Tino
Habe Muster, leider bei mir nicht geklappt
06.11.2010 12:35:03
Kurt
Hallo Tino,
habe mal Muster beigefügt irgenwie nicht geklappt,
bitte schau mal, danke.
mfg Kurt p
https://www.herber.de/bbs/user/72172.xls
Anzeige
ok. eine andere Variante
06.11.2010 12:55:23
Tino
Hallo,
so müsste es gehen.
Option Explicit

Function Find_Bereich(strSuchBegriff$, rngBereich As Range) As Range
Dim rngRange As Range

Set rngRange = rngBereich.Find(What:=strSuchBegriff, LookIn:=xlValues, LookAt:= _
        xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False)

If Not rngRange Is Nothing Then
  Set rngRange = Range(rngRange, rngBereich.Find(What:=strSuchBegriff, LookIn:=xlValues, LookAt:= _
        xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _
        , SearchFormat:=False).Offset(1, 0))

  Set Find_Bereich = rngRange.Resize(, 7)
End If

End Function

Sub Beispiel()
Dim strSuchBegriff$, rngBereich As Range

strSuchBegriff = "DRF"

With Sheets("Tabelle1")
    Set rngBereich = Find_Bereich(strSuchBegriff, .Columns(1))
    If Not rngBereich Is Nothing Then
        Application.Goto rngBereich
    End If
End With

End Sub
Gruß Tino
Anzeige
So gehts aber
06.11.2010 13:08:56
Kurt
Hallo Tino,
ja, so klappt es.
Allerdings kann ich nicht direkt den selektierten Bereich anpacken und
wegziehen.
Wenn ich allerdings rechte Maustaste drücke und Ausschneiden auswähle
dann ist der Bereich LEER.
Jetzt möchte ich gern die LEEREN Zeilen löschen ?!
mfg KURT P
AW: So gehts aber
06.11.2010 13:32:58
Tino
Hallo,
mit Selection.EntireColumn.Delete,
kannst Du den selektierten Bereich der Leer ist, die kompletten Spalten löschen
Gruß Tino
AW: So gehts aber
06.11.2010 13:51:31
Kurt
Hallo Tino,
anbei mein Makro, habe aufgezeichnet.
Ausschneiden ok. aber den alten Bereich dann nach oben Schieben
klappt nicht, kannst Du nochmal schauen ?
mfg Kurt P
Anzeige
"anbei mein Makro" kann es nicht sehen ;-) oT.
06.11.2010 14:42:24
Tino
Sorry anbei, meinFehler
06.11.2010 17:55:19
Kurt
Hallo Tino,
sorry war mein Fehler habe vergessen zu kopieren.
Anbei.
Wie kann ich es durchführen, wenn ich mehrer Bereiche ausschneiden möchte ?
Sub Beispiel()
Dim strSuchBegriff$, rngBereich As Range
strSuchBegriff = "HGB"
With Sheets("Tabelle1")
Set rngBereich = Find_Bereich(strSuchBegriff, .Columns(1))
If Not rngBereich Is Nothing Then
Application.Goto rngBereich
End If
End With
rngBereich.Cut
Range("I27").Select
ActiveSheet.Paste
rngBereich.EntireColumn.Delete
End Sub

mfg Kurt P
kannst Du so machen...
06.11.2010 18:07:37
Tino
Hallo,
versuche es mal so.
Option Explicit

Sub Beispiel()
Dim strSuchBegriff$, rngBereich As Range
Dim strAddress$
strSuchBegriff = "HGB"

With Sheets("Tabelle1")
    Set rngBereich = Find_Bereich(strSuchBegriff, .Columns(1))
    If Not rngBereich Is Nothing Then
        strAddress$ = rngBereich.Address(external:=True)
        rngBereich.Cut .Range("I27")
        Range(strAddress$).Delete xlShiftUp
    End If
End With
    

End Sub

Function Find_Bereich(strSuchBegriff$, rngBereich As Range) As Range
Dim rngRange As Range

Set rngRange = rngBereich.Find(What:=strSuchBegriff, LookIn:=xlValues, LookAt:= _
        xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False)

If Not rngRange Is Nothing Then
  Set rngRange = Range(rngRange, rngBereich.Find(What:=strSuchBegriff, LookIn:=xlValues, LookAt:= _
        xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _
        , SearchFormat:=False).Offset(1, 0))

  Set Find_Bereich = rngRange.Resize(, 7)
End If

End Function
Gruß Tino
Anzeige
Danke --))
06.11.2010 18:31:15
Kurt
Hallo Tino,
einwandfrei Danke,
schönes Wochenende,
mfg Kurt P
Leider noch eine Frage weil es so ...
06.11.2010 18:43:17
Kurt
Hallo Tino,
habe gerade mal mit Tisch etc. getestet, klappt nicht.
Bei den Namen z,b, Tisch steht immer ein
T Tich Rund
S Stuhl Braun
also immer ein Buchstabe, Leerzeichen und dann der ausführliche Begriff in einer Zelle,
könntest Du nochmal schauen ?
mfg Kurt P
xlWhole --> xlPart
06.11.2010 19:12:14
Tino
Hallo,
mach in der Funktion bei den beiden Find- Anweisungen aus
xlWhole
dies
xlPart
Dann wird beim suchen nicht der gesamte Inhalt verglichen.
Gruß Tino

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige