Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Suchen makieren | Herbers Excel-Forum


Betrifft: Suchen makieren von: walli
Geschrieben am: 26.01.2010 13:22:58

Hallo Allerseits,
ich suche eine Möglichkeit einen Bereich zu suchen und evtl. auch zu löschen.

In meiner Tabelle steht in der Spalte BA(53) durch eine Formel bedingt ein "1".
Wo die 1 anfängt, sollte ermittelt werden und der Bereich bis zum Ende der Tabelle
DAS ENDE ist durch die Spalte "A" zu erreichen, die lf. Nummer steht da,
makiert werden.
Für mein anderes Makro müßte ich diesen Bereich dann löschen.
Wenn keine 1 zu finden ist sollte eine Hinweis kommen,
danke im Voraus.
mfg walli

  

Betrifft: AW: Suchen makieren von: fcs
Geschrieben am: 26.01.2010 15:24:44

Hallo walli,

etwa so

Gruß
Franz

Sub BereichLoeschen()
  Dim Zeile As Long, Zelle As Range
  Dim wks As Worksheet
  Set wks = ActiveSheet
  Application.ScreenUpdating = False
  With wks
  ' letze Zeile  Spalte A
    Zeile = .Cells(.Rows.Count, 1).End(xlUp).Row
    '1 in Spalte BA suchen
    Set Zelle = .Columns(53).Find(what:=1, LookIn:=xlValues, lookat:=xlWhole)
    If Zelle Is Nothing Then
      MsgBox "Keine 1 in Spalte BA", vbInformation + vbOKOnly, "Löschen Bereich"
    Else
      If Zeile >= Zelle.Row Then
        .Range(.Rows(Zelle.Row), .Rows(Zeile)).ClearContents
      Else
        .Rows(Zelle.Row).ClearContents
      End If
    End If
  End With
  Application.ScreenUpdating = True
End Sub



  

Betrifft: Sorry von: walli
Geschrieben am: 26.01.2010 19:49:57

Guten Abend Franz,

es soll nur bis Spalte 53 gelöscht werden.

mfg walli


  

Betrifft: AW: Sorry von: fcs
Geschrieben am: 27.01.2010 00:53:12

Hallo walli,


dann muss du den folgenden Abschnitt in dem gelöscht wird anpassen.

      If Zeile >= Zelle.Row Then
        .Range(.Cells(Zelle.Row, 1), .Cells(Zeile, 53)).ClearContents
      Else
        .Range(.Cells(Zelle.Row, 1), .Cells(Zelle.Row, 53)).ClearContents
      End If

Gruß
Franz


  

Betrifft: Warum ... von: walli
Geschrieben am: 27.01.2010 09:52:11

Guten Morgen Franz,
Warum steht eigentlich die löscht Zeile 2x drin ?

mfg walli


  

Betrifft: AW: Warum ... von: fcs
Geschrieben am: 27.01.2010 11:21:51

Hallo walli,

ich kenne ja deine Tabelle und ihre Daten nicht, wenn das Makro gestartet wird.

Dies ist eine Absicherung für den Fall, dass die letzte Zeile mit Daten in Spalte A oberhalb der Zeile ist, in der in Spalte 53 die 1 gefunden wird.

Beispiel:
LetzteZeile mit Daten in Spalte A = 10, 1 in Spalte 53 in Zeile 15

Ohne Prüfung der Zeilennummer und die 2. Löschanweisung
würden die Inhalte im Bereich Range(Cells(10,1),cells(15,53)) gelöscht.

Mit Prüfung wird die 2. Löschanweisung wirksam und es wird hier nur der Inhalt in
Range(Cells(15,1),cells(15,53)) gelöscht.

Ob das bei deinen Daten relevant ist oder nicht weiss ich nicht. Jedenfalls werden so nicht versehentlich Daten gelöscht.

Gruß
Franz


  

Betrifft: Danke für --)) von: walli
Geschrieben am: 27.01.2010 14:52:20

Hallo Franz,
herzlichen Dank für die Erklärung,
schönen Tag noch,
mfg walli


Beiträge aus den Excel-Beispielen zum Thema "Suchen makieren"