Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1216to1220
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

Ende suchen

Ende suchen
Kurt
Guten Abend,
das folgende Makro funktioniert soweit aber (auch über Forum) ich
möchte in der Suchspalte nur den Bereich ausschneiden, bis das "M"
in der Spalte 8 der letzte Buchstabe ist +1 Zeile.
Dann soll nicht so eingefügt werden sondern in der Spalte 21 angefangen von der Zeile 3
aus bis zur letzten belegten Zelle +1 eingfügt werden.
Ich steh irgenwie auf "Schlauch",
mfg Kurt P
Sub Beispiel()
Dim strSuchBegriff$, rngBereich As Range
Dim strAddress$
strSuchBegriff = "M *"
With Sheets("Muster")
Set rngBereich = Find_Bereich(strSuchBegriff, .Columns(8))
If Not rngBereich Is Nothing Then
strAddress$ = rngBereich.Address(external:=True)
rngBereich.Cut .Range("U4")
Range(strAddress$).Delete xlShiftUp
End If
End With
End Sub

AW: Ende suchen
17.06.2011 19:37:12
Reinhard
Hallo Kurt,
was steht denn so in Spalte 8. Ein Buchstabe pro Zelle?
Ich habe den Code nur kurz geschaut.
Im Code wird nach M plus Leerzeichen (plus Stern) gesucht.
Ein einzelnes M wird damit nicht gefunden.
Beispielmappe hochladen?
Gruß
Reinhard
Dahinter Text
17.06.2011 19:50:22
Kurt
Hallo Reinhard,
dahinter steht verschiedener Text Bücher etc. aber als erstes
habe ich immer ein Leerzeichen, deshalb der Stern.
mfg Kurt P
Ich nochmal
17.06.2011 21:32:38
Kurt
Hallo Reinhard oder ander Experten,
ich möchte in der Spalte 8 nur den Bereich suchen der mit einem "M" + Leerzeichen steht
anfängt.
Also:
M Tische
M Stuhl
Falsch > MM Stuhl
mfg kurt P
Anzeige
AW: Ende suchen
17.06.2011 22:12:46
Peter
Hallo Kurt,
finden kannst Du Deine Werte z. B. so:
Option Explicit
Public Sub Find_Methode()
Dim rZelle        As Range
Dim sFundst       As String
Dim sSuchbegriff  As String
sSuchbegriff = "M *"
With ThisWorkbook.Worksheets("Muster").Columns(8)
Set rZelle = .Find(What:=sSuchbegriff, LookAt:=xlWhole, LookIn:=xlValues, After:=.Cells(. _
Cells.Count))
If Not rZelle Is Nothing Then
sFundst = rZelle.Address
Do
MsgBox "Gefunden in Zelle  " & rZelle.Address(0, 0)
Set rZelle = .FindNext(rZelle)
Loop While Not rZelle Is Nothing And rZelle.Address  sFundst
Else
MsgBox "Der Begriff  """ & sSuchbegriff & """  wurde nicht gefunden.", _
48, "   Hinweis für " & Application.UserName
End If
End With
End Sub

Was Du mit den gefundenen Werte machen willst. musst Du selbst einfügen.
Gruß Peter
Anzeige
Guten Morgen Peter, klappt muß aber ....
18.06.2011 09:08:59
Kurt
Hallo Peter,
klappt einwandfrei.
Aie Werte sollen von der Spalte "H" gefundene in die Spalte A ausgeschnitten und
da eingesetzt werden.
Allerdings brauch ich die Werte von Spalte H-M.
Also jede Zeile die gefunden wird ausschneiden und in die Spalte A ab Zeile 4 einsetzen,
ist das machbar ?
Habe dieses Makro im Forum gefunden.
mfg Kur P
AW: Guten Morgen Peter, klappt muß aber ....
18.06.2011 14:55:38
Peter
Hallo Kurt,
ich weiß nicht, ob ich Deine Frage richtig verstanden habe, aber ich vermute einmal so soll es aussehen:
Option Explicit
Public Sub Find_Methode()
Dim WkSh          As Worksheet
Dim rZelle        As Range
Dim sFundst       As String
Dim sSuchbegriff  As String
Dim rZeile        As Range
sSuchbegriff = "M *"
Set WkSh = ThisWorkbook.Worksheets("Muster")
With WkSh.Columns(8)
Set rZelle = .Find(What:=sSuchbegriff, LookAt:=xlWhole, LookIn:=xlValues, After:=.Cells(.  _
_
Cells.Count))
If Not rZelle Is Nothing Then
sFundst = rZelle.Address
Do
'MsgBox "Gefunden in Zelle  " & rZelle.Address(0, 0)
If rZeile Is Nothing Then
Set rZeile = Rows(rZelle.Row)
Else
Set rZeile = Union(rZeile, Rows(rZelle.Row))
End If
Set rZelle = .FindNext(rZelle)
Loop While Not rZelle Is Nothing And rZelle.Address  sFundst
Else
MsgBox "Der Begriff  """ & sSuchbegriff & """  wurde nicht gefunden.", _
48, "   Hinweis für " & Application.UserName
End If
If Not rZeile Is Nothing Then
For Each rZelle In rZeile
WkSh.Range("H" & rZelle.Row & ":M" & rZelle.Row).Copy Destination:= _
WkSh.Range("A" & rZelle.Row)
Next rZelle
End If
End With
Set WkSh = Nothing
Set rZelle = Nothing
Set rZeile = Nothing
End Sub

Gruß Peter
Anzeige
Einwandfrei Zusatzfrag, wenn möglich ?
18.06.2011 15:54:07
Kurt
Guten Tag Peter,
Du hast es genau verstanden.
Zusatzfrage:
Da ich unter dem Suchbuchstaben aber die Summenzeile habe, kann man also wenn
die nächste Zelle nichts drin steht diese Zeile ebenfalls kopieren ?
Und nicht kopieren sondern ausschneiden und einfügen ab A4.
Würde mich freuen, wenn es geht
mfg Kurt P
Bitte dringend mochmal !Habe mal Muster erstellt !
19.06.2011 10:07:26
Kurt
Guten Morgen zusammen,
ich habe mal ein Muster erstellt, wie ich es haben möchte.
Habe die Commandbutton erstellt, beim drücken sollte der entsprechende Bereich
nach RECHTS kopiert werden.
Egal was ich als erstes kopieren möchte, sollte dann immer in der Spalte K ab Zeile 4
anfangen.
Die Bereiche der LÄNGE kann sehr unterschiedlich sein!!!!
Ich habe mal händig nach REchts kopiert um das Ergebnis zu zeigen.

Die Datei https://www.herber.de/bbs/user/75342.xls wurde aus Datenschutzgründen gelöscht


herzlichen Gruß Kurt P
Anzeige
Zusatz
19.06.2011 10:12:09
Kurt
Hallo zusammen,
wenn der Bereich nach RECHTS kopiert wurde soll der kopierte Bereich LINKS
gelöscht werden, so das LINKS nur de Rest steht.
gruß Kurt P
Das geht Schnell jedoch wird nicht...
19.06.2011 13:24:52
Kurt
Guten Tag Peter,
das Makro läuft sehr schnell aber vorne werden die kopierten Daten nicht gelöscht.
Und beim EINFÜGEN RECHTS sollte das was da steht drin bleiben.
Wenn also LINKS alles mit K kopiert wurde und Rechts schon L steht muß halt darunter eingefügt werden.
Geht das ?
Und LINKS sollten dann die Zeilen gelöscht werden und entsprechend nach oben schieben.
gruß KURT P
Anzeige
Bei 2 oder 3Zeichen
19.06.2011 13:32:52
Kurt
Hallo Peter, wenn ich KL oder KLE auch das Suchmakro ändere, nimmt nichts
an, kopiert also nicht.
Da ich später LInks Bauteile einsetze.
gruß KURT P
AW: Bei 2 oder 3Zeichen
19.06.2011 14:32:16
Peter
Hallo Kurt,
Da der Anwender erst sagen kann was er haben will,
wenn ers ieht, was er bekommen hat,
kriegt er das, was er nie gemeint hat.

Du solltest möglichst immer genau aufführen, was Du haben möchtest, dann muss nich alles mehrfach überarbeitet werden.
versuch es also so: https://www.herber.de/bbs/user/75347.xls
Der Suchbegriff wird unter dem jeweiligen Button gefüllt, also als Klassenmodul hinter dem Tabellenblatt "Muster".
Rechtsklick auf den Tabellenblattreiter
Linksklick auf Code anzeigen
Gruß Peter
Anzeige
Hallo Sorry, perfect, wie kann man die
19.06.2011 15:07:02
Kurt
Guten Tag Peter, sorry soweit alles perfekt.
Wie kann man den die kopierten Daten wo die LINKS stand, die
Leerzeilen den direkt LÖSCHEN ?
gruß KURT P
Hallo Peter Feustel Klasse die UF
19.06.2011 15:19:17
Kurt
Hallo Peter, das mit der UF ist wirklich KLASSE !!!
Jetzt müssten nur noch die Leerzeilen gelöscht werden.
gruß Kurt P
AW: Hallo Peter Feustel Klasse die UF
19.06.2011 16:32:28
Peter
Hallo Kurt,
Leerzeilen sind doch leer - wie oder warum sollen die noch gelöscht werden?
Was (welche Zeile(n)) bezeichnest Du in Deiner Mustermappe als Leerzeile, die gelöscht werden sollte?
Gruß Peter
Anzeige
AW: Hallo Peter Feustel Klasse die UF
19.06.2011 16:37:01
Kurt
Sorry Peter,
die Zeilen die kopiert werden sollen nach oben geschoben werden.
In der Spalte B-I .
Hatte mal aufgezeichnet, weiß aber nicht wo ich dies reinsetzen soll.
' Selection.Delete Shift:=xlUp
und so eingesetzt.
''' .Range(.Cells(lZeile_Q, 2), .Cells(lZeile_Q, 9)).Delete Shift:=xlUp
gruß Kurt P
AW: Hallo Peter Feustel Klasse die UF
19.06.2011 16:41:26
Peter
Hallo Kurt,
das macht alles weitaus komplizierter, da dann die For/Next Schleife nicht mehr funktioniert, denn Du würdest der die Zeilen 'unter den Füßen wegziehen'.
Gruß Peter
AW: Hallo Peter Feustel Klasse die UF
19.06.2011 16:49:37
Peter
Hallo Kurt,
so sollte es funktionieren https://www.herber.de/bbs/user/75350.xls
Gruß Peter
Anzeige
Tausend Dank Einwandfrei Schönen Sonntag ! -)
19.06.2011 17:03:29
Kurt
Hallo Peter, schönen Dank für die Geduld,
einwandfrei Danke !
Schönen Sonntag noch,
gruß Kurt P
AW: Hallo Peter Feustel Klasse die UF
19.06.2011 16:38:19
Peter
Hallo Kurt,
solltest Du die unterstrichenen Zeilen meinen, dann ändere
.Range(.Cells(lZeile_Q, 2), .Cells(lZeile_Q, 9)).ClearContents
in
.Range(.Cells(lZeile_Q, 2), .Cells(lZeile_Q, 9)).Clear 'Contents
Gruß Peter
Schicke Muster
19.06.2011 16:51:52
Kurt
Hallo Peter F,
anbei das Muster.
Der gelbe Bereich der nach rechts kopiert wurde, soll jetzt LINKS
nach oben geschoben werden.
Habe gelb makiert.
gruß Kurt P
https://www.herber.de/bbs/user/75351.xls
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige