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.

Excel VBA - Suche auf anderem Blatt
#1
Hi Leute,

vielleicht ein ganz simples Problem, aber ich versuche mittels Makro einen Begriff auf einem nicht aktivierten Tabellenblatt zu löschen - geht das nicht?

Code:
Sub suchen()


Dim c As Range
Dim firstaddress As String
Dim sbegriff As String
Dim Datum As Date
Dim Startwoche As String
Dim Startwoche_Name As String
Dim Suchvariable As Range
Dim Startspalte As String
Dim i As Integer




sbegriff = InputBox("Bitte Suchbegriff eingeben")
Datum = InputBox("Datum")

Startwoche = CStr(WorksheetFunction.IsoWeekNum(Datum))
Set Suchvariable = ThisWorkbook.Sheets(Startwoche).Range("A1:G3").Find(what:=Datum, LookIn:=xlValues, lookat:=xlWhole)

With ThisWorkbook.Sheets(Startwoche).Range(Cells(2, Suchvariable.Column), Range("G3"))
    Set c = .Find(sbegriff, LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then
        firstaddress = c.Address
        Do
            Range(Cells(c.Row, c.Column), Cells(c.Row, c.Column)) = ""
            Set c = .FindNext(c)
            Loop Until c Is Nothing
    End If
End With
End Sub


Vielen Dank im VorausSmile


Angehängte Dateien
.xlsm   Suchen auf anderem Blatt.xlsm (Größe: 18,08 KB / Downloads: 3)
Antwortento top
#2
Hallöchen,

Du hast einen Mix aus anderem Blatt und aktivem Blatt. Trenne das mal so:

With ThisWorkbook.Sheets(Startwoche)
With .Range(.Cells(2, Suchvariable.Column), .Range("G3"))
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#3
Hi Andre,

vielen Dank für die Rückmeldung. So genau verstehe ich das Problem noch nicht. Kannst du mir das erläutern, wo der Bezug zum "aktiven" Tabellenblatt" ist?

Code:
sbegriff = InputBox("Bitte Suchbegriff eingeben")
Datum = InputBox("Datum")

Startwoche = CStr(WorksheetFunction.IsoWeekNum(Datum))
Set Suchvariable = ThisWorkbook.Sheets(Startwoche).Range("A1:G3").Find(what:=Datum, LookIn:=xlValues, lookat:=xlWhole)

With ThisWorkbook.Sheets(Startwoche)
With .Range(Cells(2, Suchvariable.Column), Range("G3"))
    Set c = .Find(sbegriff, LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then
        firstaddress = c.Address
        Do
            Range(Cells(c.Row, c.Column), Cells(c.Row, c.Column)) = ""
            Set c = .FindNext(c)
            Loop Until c Is Nothing
    End If
End With
End With

das funktioniert zumindest so nicht .... Angel
Antwortento top
#4
Alle Cells und Range ohne den "." Punkt davor gehen auf das Aktive Blatt. der Rest auf den Bezug mit With

du hast das Beispiel nicht korrekt übernommen.
[-] Folgende(r) 1 Benutzer sagt Danke an ralf_b für diesen Beitrag:
  • EasY
Antwortento top
#5
Hallöchen,

die Punkte musst Du auch noch im Do-Loop-Codebereich beachten.

Das With ist u.a. dazu, um dir einiges an Schreibarbeit zu sparen Smile Du musst aber den zugehörigen Rest so schreiben, als würde der vordere Teil auch da stehen.

Mit nur einem With hättest Du es so schreiben müssen, wobei man über die Notwendigkeit von ThisWorkbook reden könnte Smile:

With ThisWorkbook.Sheets(Startwoche).Range(ThisWorkbook.Sheets(Startwoche).Cells(2, Suchvariable.Column), ThisWorkbook.Sheets(Startwoche).Range("G3"))
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
  • EasY
Antwortento top
#6
Ergibt Sinn, danke euch. 

Das Thisworkbook ist bei mir so drin - bei meinem VBA-Selbststudium habe ich damit gestartet und nun schreibe ich es immer. Schaden kann es denke ich nichtSmile.
Was ich bisher allerdings nie verstanden hatte : den Unterschied von worksheets und sheets. Aber das ist ein anderes Thema. 

Gruß
Antwortento top
#7
worksheets beinhaltet nur Arbeitsblätter. In Sheets können auch andere Blattarten drin sein.
Antwortento top
#8
Hallöchen,

Worksheets sind nur die Tabellen. Sheets sind alle Blätter - Tabellen, Diagrammblätter, Makro- und Dialogblätter aus Excel4 Zeiten, ...
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top


Gehe zu:


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