Microsoft Excel

Herbers Excel/VBA-Archiv

Kopieren von bestimmten Bereichen

Betrifft: Kopieren von bestimmten Bereichen von: sylke
Geschrieben am: 18.08.2008 14:48:47

Hallo Zusammen!

Ich brauche ein Markro, was nach einem bestimmten Begriff sucht und von da aus bis zum nächsten gefundenen Begriff den Bereich markiert.

Sub test()
'Suchen
Cells.Find(What:=orginal).Activate

ActiveCell.Range("A1:(bis zum Begriff (Ende)").Select
Selection.Copy

End Sub



Kann mir jemand weiter helfen?

Viele Grüße
Sylke

  

Betrifft: AW: Kopieren von bestimmten Bereichen von: Rudi Maintaire
Geschrieben am: 18.08.2008 15:16:27

Hallo,
meinst du das so?

Sub tt(strAnfang As String, strEnde As String)
  Dim rAnfang As Range, rEnde As Range
  On Error Resume Next
  Set rAnfang = Cells.Find(strAnfang, LookIn:=xlValues, lookat:=xlWhole)
  Set rEnde = Cells.Find(strEnde, after:=rAnfang, LookIn:=xlValues, lookat:=xlWhole)
  On Error GoTo 0
  If Not rAnfang Is Nothing And Not rEnde Is Nothing Then
    Range(rAnfang, rEnde).Select
  End If
End Sub


Gruß
Rudi


  

Betrifft: AW: Kopieren von bestimmten Bereichen von: sylke
Geschrieben am: 19.08.2008 09:55:34

Hallo Rudi!

Danke für Deine Antwort. Leider funktioniert es noch nicht ganz. Ich musste das "Cells.Find" anpassen, da es sonst die jeweiligen Strings nicht gefunden hat.

On Error Resume Next
Set rAnfang = Cells.Find(What:=original, After:=ActiveCell, LookIn:=xlValues _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Set rEnde = Cells.Find(What:="Ende", After:=ActiveCell, LookIn:=xlValues _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
On Error GoTo 0
If Not rAnfang Is Nothing And Not rEnde Is Nothing Then
Range(rAnfang, rEnde).Select
End If

Es werden die jeweiligen Strings jetzt zwar gefunden (habe ich mit Debuggen getestet), aber trotzdem werden die Variablen rAnfang und rEnde mit "Nothing" belegt. Woran könnte das liegen?

Viele Grüße
Sylke


  

Betrifft: AW: Kopieren von bestimmten Bereichen von: Daniel
Geschrieben am: 19.08.2008 15:49:05

HI

verwende mal die FIND-Funktion ohne das .ACTIVATE am Ende, dann sollte es funktionieren.
das ON ERROR RESUME NEXT ist dann auch überflüssig, in diesem Fall kein Fehler bei einem nicht gefundenen Suchtext erzeugt wird.
das hier müsste als code funktionieren:

Set rAnfang = Cells.Find(What:=original, After:=ActiveCell, LookIn:=xlValues _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Set rEnde = Cells.Find(What:="Ende", After:=ActiveCell, LookIn:=xlValues _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not rAnfang Is Nothing And Not rEnde Is Nothing Then
Range(rAnfang, rEnde).Select
End If



Gruß, Daniel


  

Betrifft: AW: Kopieren von bestimmten Bereichen von: sylke
Geschrieben am: 21.08.2008 13:19:19

Hallo Daniel!

Super, jetzt funktioniert es.

Hast Du vielleicht noch einen Tip, wie man das Ende der aktuellen Zeile finden b.z.w. die letzte gefüllte Zelle einer Zeile.

Vielen Dank
Sylke


 

Beiträge aus den Excel-Beispielen zum Thema "Kopieren von bestimmten Bereichen"