Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
372to376
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
372to376
372to376
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suchfunktion

Suchfunktion
30.01.2004 12:44:42
Jacob
Hallo Leute,
Ich brauche Eure Hilfe, da ich da nicht weiter komme. Ich möchte erreichen dass, die Routine in einer Datei alle 3 Tabellen durchsucht und den Knopf mit der Überschrift "Vormonat" findet und in "Aktuell" ändert. Momentan habe ich es erreicht dass, ich gezielt den Knopf und die Tabelle anspreche und die Überschrift ändere. Das ist aber nicht der Sinn der Sache, da später sich in den Tabellen mehrere Knöpfe befinden sollten. Die Dateien besitzen im Prinzip jeweils nur drei Tabellen und in einer beliebigen Tabelle existiert zur Zeit nur ein Knopf.
In der Aktuell.xls der Knopf "Vormonat"
In der Vormonat.xls der Knopf "Vormonat" - der soll gefunden und geändert werden
In der Start.xls der Knopf "Suchen" - damit wird das Makro ausgeführt.
Ich hoffe man kann es verstehen, ansonsten stehe ich für Fragen zur Verfügung.
DANKE !!!Das ganze dient einer Dateiarchivierung, die Dateien füge ich als Anlagen bei. Es wäre Toll wenn sich Jemand von Euch damit beschäftigen könnte. Danke im Voraus.

Sub Sichern()
Dim AlterName, Neuername
Dim Datei As String
Dim Active As Workbook
On Error GoTo Meldung
Monat = Month(Now)
If Day(Now) - 15 <= 10 Then
Monat = Monat - 1
End If
If Monat - 2 < 1 Then
Archivmonat = Monat - 2 + 12
Archivjahr = Year(Now) - 1
Else
Archivmonat = Monat - 2
Archivjahr = Year(Now)
End If
Archivname = "Stand_" & Archivmonat & "_" & Archivjahr & ".xls"
FileCopy "c:\aktuell.xls", "c:\Aktuell_alt.xls"
AlterName = "c:\Vormonat.xls": Neuername = "c:\" & Archivname
Name AlterName As Neuername
AlterName = "c:\Aktuell_alt.xls": Neuername = "c:\Vormonat.xls"
Name AlterName As Neuername
Datei = "c:\vormonat.xls"
Workbooks.Open Datei
Set Active = Application.ActiveWorkbook
ActiveSheet.Shapes("AutoShape 3").Select
Selection.Characters.Text = "Aktuell"
Workbooks("c:\vormonat.xls").Close SaveChanges:=True
Exit Sub
Meldung:
titel1 = "Fehler"
Mel0 = "Sie haben die Datei bereits einmal gesichert."
antwort = MsgBox(Mel0 + Chr(13), vbOKOnly, titel1)
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchfunktion
30.01.2004 13:11:57
Alex K.
Hallo Jacob,
ich gehe mal davon aus, dass du mit "Knopf" eine Formular-Schaltfläche meinst und mit "Überschrift" die Beschriftung in der Schaltfläche.
Wenn das so ist, dann hier der Code:

Public Sub SucheButton()
    Dim shp     As Shape
    Dim sh      As Worksheet
    
    For Each sh In ActiveWorkbook.Sheets
    
        For Each shp In sh.Shapes
        
            If shp.Type = msoFormControl Then
            
                If shp.FormControlType = xlButtonControl Then
                    
                    If shp.DrawingObject.Caption = "Vormonat" Then
                        shp.DrawingObject.Caption = "Aktuell"
                    End If
                    
                End If
           
           End If
           
    
        Next shp
        
    Next sh
    
End Sub
Anzeige
AW: Suchfunktion
30.01.2004 13:28:47
Jacob
Hallo Alex
danke für die super schnelle Antwort. Ich werde es in ca. 30 min testen können dann sag ich dir Bescheid ob es geht.
Jacob
AW: Suchfunktion
30.01.2004 13:30:24
Jacob an Alex
Hallo Alex
geht das auch für alle tabellen oder nur eine aktuelle ?
Jacob
AW: Suchfunktion
30.01.2004 13:37:48
alex k.
Hallo Jakob,
ist mir nicht ganz klar, was du meinst. Es werden ALLE Tabellen (Blätter) einer Arbeitsmappe durchsucht. Wenn du meinst, ob dies für ALLE offenen Arbeitsmappen geht, dann füge noch die For-Schleife hinzu:

Dim book   as workbook
For each book in Workbooks
For Each sh In book.Sheets
For Each shp In sh.Shapes
next shp
next sh
next book
next book

Anzeige
AW: Suchfunktion
30.01.2004 14:38:11
Jacob an Alex.k
Hallo Alex
es funktioniert, ich möchte mich bei dir bedanken und bin begeistert. Es müsste auch für AutoShapes funktionieren ?
MfG
Jacob
AW: Suchfunktion
30.01.2004 14:47:22
Alex K.
Hallo Jacob,
mit AutoShapes klappt es nur, wenn du die Abfragen entsprechen änderst.
Also anstatt
If shp.Type = msoFormControl Then
mußt du
If shp.AutoShapeType = ???? Then
anpassen. Auch die anderen Abfragen entsprechend den Eigenschaften der AutoShapes anpassen. Am einfachsten ist es, in der Zeile einen Haltepunkt zu setzen und mal zu schauen, was in shp drinsteht, wenn es ein AutoShape ist!
AW: Suchfunktion
30.01.2004 15:09:08
Jacob an Alex
Hallo Alex
es ist wirklich super nett von dir dass, du so schnell antwortest. Mit dem Haltepunkt war es eine gute Idee, es funktioniert. Ich danke dir noch einmal und ein schönes Wochenende
Jacob
Anzeige
AW: Suchfunktion
30.01.2004 15:28:05
Jacob
Hallo Alex,
meine Freude war noch ein wenig zu früh, denn es will einfach nicht klappen mit den AutoShapes. Kannst du mir vielleicht noch ein wenig helfen was das Anpassen von dem Code angeht. Würde mich sehr freuen
Jacob
AW: Suchfunktion
30.01.2004 15:36:43
Alex K.
Hallo Jacob,
hoffe, das ist nun die Lösung.

Public Sub SucheButton()
    Dim shp     As Shape
    Dim sh      As Worksheet
    Dim book    As Workbook
    
    For Each book In Workbooks
    
    For Each sh In book.Sheets
        
        For Each shp In sh.Shapes
        
            If shp.Type = msoAutoShape Then
                
                If shp.DrawingObject.Caption = "Vormonat" Then
                    shp.DrawingObject.Caption = "Aktuell"
                End If
                
            End If
           
    
        Next shp
        
    Next sh
    
    Next book
    
End Sub
Ein schönes Wocheende!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige