Office: (Office 2016) VBA in Objekt nach Text suchen und Farbe ändern

Helfe beim Thema VBA in Objekt nach Text suchen und Farbe ändern in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich benötige Eure Hilfe. Ich hab im Netz folgendes Makro gefunden, welches auch prima funktioniert. Nur würde ich es gerne auf... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von MHS1511, 4. Dezember 2019.

  1. MHS1511 Neuer User

    VBA in Objekt nach Text suchen und Farbe ändern


    Hallo zusammen,

    ich benötige Eure Hilfe.
    Ich hab im Netz folgendes Makro gefunden, welches auch prima funktioniert. Nur würde ich es gerne auf meine Bedürfnisse wie folgt umbauen.

    1. Makro soll mit Strg & F1 geöffnet werden.
    2. Blattschutz mit Kennwort "Hallo" soll deaktivert werden.
    3. Makro soll nur auf dem aktiven Tabellenblatt ausgeführt werden.
    4. Makro soll so ausgeführt werden, dass nicht gescrollt wird sondern sich die Farbe des Objekts auf rot ändert.
    5. Farbe des Objekts wieder auf den Ursprongswert (blau) setzen.
    6. Blattschutz "Hallo" aktivieren

    Hier der Code was ich bis jetzt habe:

    HTML:
    Option Explicit
     
    Sub searchInForms()
      Dim objShp As Object, objWS As Worksheet
      Dim strSearch As String
     
      strSearch = InputBox("Suchbegriff eingeben")
     
      
      If Len(strSearch) Then
        For Each objWS In ThisWorkbook.Worksheets
          For Each objShp In objWS.Shapes
            If InStr(1, objShp.TextFrame.Characters.Text, strSearch, vbTextCompare) Then
                      
              
              Application.Goto objShp.TopLeftCell, True
              If MsgBox("Weitersuchen?", vbYesNo) = vbNo Then Exit Sub
            End If
          Next
        Next
      End If
    End Sub
    
    Vielen Dank schonmal vorab
     
    MHS1511, 4. Dezember 2019
    #1
  2. Exl121150 Erfahrener User
    Hallo,

    im Objektmodul der Excel-Arbeitsmappe "DieseArbeitsmappe" befinden sich folgende 2 Makros, die ausgeführt werden, wenn
    1) die Arbeitsmappe geöffnet wird
    2) bevor die Arbeitsmappe geschlossen wird.
    Das ist notwendig, damit der Tastenkombination Strg+F1 (statt wie bisher das Ein/Ausblenden des Menübandes) das neue Makro im allgemeinen Codemodul zugeordnet wird - bzw. vor dem Schließen der Arbeitsmappe dieser Vorgang wieder rückgängig gemacht wird.
    Code:
    Option Explicit
    
    Private Sub Workbook_Open()
      [COLOR="#0000CD"]'1. Makro soll mit Strg & F1 geöffnet werden.[/COLOR]
     Application.OnKey "^{F1}", "searchInForms"
    End Sub
    
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     Application.OnKey "^{F1}"
    End Sub
    
    Ferner ist im allgemeinen Codemodul "Modul1_Neu" folgendes Makro enthalten:
    Code:
    Option Explicit
    Sub searchInForms()
    ' Dim objShp As Shape
      Dim objShp As Object
      Dim objWS As Worksheet
      Dim strSearch As String
      Dim retMsg As VbMsgBoxResult
      
    [COLOR="#0000CD"]  '3. Makro soll nur auf dem aktiven Tabellenblatt ausgeführt werden.
    [/COLOR]  Set objWS = ThisWorkbook.ActiveSheet
    [COLOR="#0000CD"]  '2. Blattschutz mit Kennwort "Hallo" soll deaktivert werden.[/COLOR]
      objWS.Unprotect Password:="Hallo"
     
      strSearch = InputBox("Suchbegriff eingeben")
      
      If Len(strSearch) Then
          For Each objShp In objWS.Shapes
            If InStr(1, objShp.TextFrame.Characters.Text, strSearch, vbTextCompare) Then
                      
    [COLOR="#0000CD"]          '4. Makro soll so ausgeführt werden, dass nicht gescrollt wird,[/COLOR]
              Application.Goto Reference:=objShp.TopLeftCell, Scroll:=False
    [COLOR="#0000CD"]          '... sondern sich die Farbe des Objekts auf rot ändert.[/COLOR]
              objShp.TextFrame.Characters.Font.Color = vbRed
              Application.ScreenUpdating = True
              retMsg = MsgBox("Weitersuchen?", vbYesNo)
    [COLOR="#0000CD"]          '5. Farbe des Objekts wieder auf den Ursprungswert (blau) setzen.[/COLOR]
              objShp.TextFrame.Characters.Font.Color = vbBlue
              If retMsg = vbNo Then Exit Sub
            End If
          Next
      End If
    [COLOR="#0000CD"]  '6. Blattschutz "Hallo" aktivieren[/COLOR]
      objWS.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="Hallo"
    End Sub
    
    Ein Excel-Datei als Muster liegt bei, wobei im Arbeitsblatt "Tabelle1" ein Rechteck-Shape als Objekt mit TopLeftCell=B5 enthalten ist.
     
    Exl121150, 6. Dezember 2019
    #2
  3. MHS1511 Neuer User
    Hi, super, vielen Dank. Genau so wollte ich das.

    Eine Kleinigkeit hätte ich noch.
    Wenn nach der Abfrage die Box "Weitersuchen erscheint" und ich auf nein klicke, dann sollte ebenfalls der Blattschutz gesetzt werden.
    HTML:
    If retMsg = vbNo Then Exit Sub 'Blattschutz setzen PW = Hallo
    .
    Könnt Ihr mir da bitte noch helfen?

    Grüße
     
    MHS1511, 7. Dezember 2019
    #3
  4. Beverly
    Beverly Erfahrener User

    VBA in Objekt nach Text suchen und Farbe ändern

    Hi,

    ändere die Zeile If retMsg = vbNo Then Exit Sub in dieses: If retMsg = vbNo Then Exit For

    Damit wird die Schleife verlassen und nicht die gesamte Prozedur und du kommst zu der Zeile wo der Blattschutz wieder gesetzt wird.

    Bis später,
    Karin
     
    Beverly, 7. Dezember 2019
    #4
  5. MHS1511 Neuer User
    Perfekt, vielen Dank Euch
     
    MHS1511, 7. Dezember 2019
    #5
Thema:

VBA in Objekt nach Text suchen und Farbe ändern

Die Seite wird geladen...
  1. VBA in Objekt nach Text suchen und Farbe ändern - Similar Threads - VBA Objekt Text

  2. Excel VBA Laufzeitfehler 424 Objekt erforderlich

    in Microsoft Excel Hilfe
    Excel VBA Laufzeitfehler 424 Objekt erforderlich: Hallo zusammen, ich habe schon verschiedene Antworten zum Laufzeitfehler 424 gefunden, komme aber leider damit doch irgendwie nicht weiter (bin absoluter VBA-Neuling). Folgendes Makro habe ich...
  3. Laufzeitfehler "424" Objekt erforderlich Selenium VBA

    in Microsoft Excel Hilfe
    Laufzeitfehler "424" Objekt erforderlich Selenium VBA: Hallo Zusammen, ich möchte mithilfe von Selenium in VBA eine Tabelle auf einer Webseite in eine Excel Tabelle kopieren. Allerdings bekomme ich den Fehler "Laufzeitfehler "424" Objekt...
  4. Mit Access VBA ein bmp in OLE-Objekt verknüpfen

    in Microsoft Access Hilfe
    Mit Access VBA ein bmp in OLE-Objekt verknüpfen: Liebe Forengemeinde, ich kämpfe seit tagen mit einem Problem einer OLE-Verknüpfung. Ich habe eine Datenbank, die bisher auf Access 2016 lief. Hierin werden auf einem Datenblatt je nach einem...
  5. Makro läuft in einer Datei einwandfrei, in einer anderen kommt es zur Fehlermeldung

    in Microsoft Excel Hilfe
    Makro läuft in einer Datei einwandfrei, in einer anderen kommt es zur Fehlermeldung: Liebe Excel-VBA Spezialisten Ich habe ein seltsames Problem. Das untenstehende Skript läuft in einer Excel-Datei absolut einwandfrei. Für Tests habe ich es in einer separaten Datei erstellt....
  6. VBA: Im offenen IExplorer ein Objekt ohne ID klicken

    in Microsoft Excel Hilfe
    VBA: Im offenen IExplorer ein Objekt ohne ID klicken: Hallo Zusammen, viele Male konnte ich hier im Forum wertvolle Informationen finden und mein laienwissen erweitern. Jetzt stehe ich vor einem kleinen Problem, für dass ich keine Lösung finde....
  7. Word VBA navigieren mit Range-Objekt, Bilder positionieren

    in Microsoft Word Hilfe
    Word VBA navigieren mit Range-Objekt, Bilder positionieren: Guten Tag liebe Word Experten Ich bin etwas frustriert, weil ich etwas so einfaches nicht hinbekomme, als letzten ausweg nach stundenlangen Internet-Recherchen, hoffe ich nun auf eure Hilfe....
  8. OLE-Objekt formatieren VBA

    in Microsoft Word Hilfe
    OLE-Objekt formatieren VBA: Hallo, ich habe eine PDF in ein Word Dokument eingefügt. Dies geschieht mit folgenden Code: Selection.GoTo what:=wdGoToBookmark, Name:="Konformität" Selection.InlineShapes.AddOLEObject...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden