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.

Verlinkung verschiedener sheets
#1
Moin zusammen, bin neu hier im Forum.

Kurz zu mir: ich arbeite schon lange mit ExCel, allerdings nur rudimentär und beherrsche nur die basics. Mein Kollege möchte etwas basteln, mit dem man zB durch Doppelclick auf eine bestimmte Zelle sieht in welchem sheet dieser Zelleninhalt, zB ein Name, ebenfalls enthalten ist. Hintergund ist, dass es in verschiedenen Themenbereichen und Projekten Überschneidungen gibt und man dadurch schnell sehen kann in welchem Projekt zB Gerät XYZ ebenfalls auftaucht.

Meine 1-stündige Suche hat leider nicht zum gewünschten Erfolg verholfen, vielleicht könnt Ihr mir weiterhelfen. Danke!
Antworten Top
#2
Moin, 


suche nach vba  Zellwert in allen Blättern suchen 

den code ins codemodule des Arbeitsblattes, rechter Mausklick auf Arbeitsblattreiter Code anzeigen , einfügen

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    Dim rngZelle As Range
    Dim strSuchbegriff As String, Ergebnis As String
    Dim bytWeiter As Byte
    Dim lngTabellen As Long
    strSuchbegriff = Target.Value
    If strSuchbegriff <> "" Then
      For lngTabellen = 1 To Worksheets.Count
        
          If Worksheets(lngTabellen).Name <> ActiveSheet.Name Then
           With Worksheets(lngTabellen).UsedRange
              Set rngZelle = .Find(strSuchbegriff, lookat:=xlPart, LookIn:=xlValues)
              If Not rngZelle Is Nothing Then
                  firstAddress = rngZelle.Address
                  Do
                      Ergebnis = Ergebnis & IIf(Ergebnis = "", "", vbLf) & rngZelle.Parent.Name
                      ' nächsten Treffer suchen
                      Set rngZelle = .FindNext(rngZelle)
                  Loop While Not rngZelle Is Nothing And rngZelle.Address <> firstAddress
              End If
            End With
          End If
      Next lngTabellen
      If Ergebnis <> "" Then MsgBox Ergebnis
   End If
   Set rngZelle = Nothing
End Sub

[-] Folgende(r) 1 Nutzer sagt Danke an ralf_b für diesen Beitrag:
  • TechNoob777
Antworten Top
#3
Danke, das klappt schonmal für einen worksheet, wie bekommt man es dazu, alle worksheets abzusuchen? Muss man vorher die worksheets verknüpfen oder dazu etwas im code anpassen?

Edit: der code, wenn man ihn in jeden worksheet einfügt, funktioniert doch so wie geplant. Vielen Dank!
Antworten Top
#4
For lngTabellen = 1 To Worksheets.Count
heißt übersetzt-  von 1 bis Anzahl der Arbeitsblätter

  If Worksheets(lngTabellen).Name <> ActiveSheet.Name Then
  mache das Folgende nur wenn der Name Arbeitsblatt zu durchsuchenden Arbeitsblattes 

  nicht der Name des aktuellen Arbeitsblattes ist  

     With Worksheets(lngTabellen).UsedRange

     der nachfolgende Code bezieht sich auf den benutzten Bereich des Arbeitsblattes  aus der Liste der Arbeitsblätter 


Somit werden bereits alle Blätter durchsucht nur nicht das wo due in die Zelle klickst.
Und ausgeblendete Zellen könnten auch von der Such ausgelassen werden. 



 
Antworten Top


Gehe zu:


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