Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Excel-Formatierung über VBA

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Excel-Formatierung über VBA (1294 mal gelesen)
Robert VBA
Mitglied



Sehen Sie sich das Profil von Robert VBA an!   Senden Sie eine Private Message an Robert VBA  Schreiben Sie einen Gästebucheintrag für Robert VBA

Beiträge: 11
Registriert: 20.02.2007

erstellt am: 20. Feb. 2007 00:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen.

Ich habe ein Problem und komme nicht weiter.
Die Aufgabe ist folgende:

1. Import der Daten aus externer Schnittstelle in 41 Tabellenblätter.

2. Suche in allen Tabellenblätter die Zeilen mit dem Wort "Vorbereitung", markiere die gefundenen Zeilen, setzte die Schriftfarbe blau, die Größe auf 12 und Fett.

3.Das Problem ist folgendes: Da bei jedem Import der alte Datenbereich durch einen neuen überschrieben wird, kann nun der Begriff "Vorbereitung" theoretisch in jedem Tabellenblatt in einer anderen Zeile stehen.

Genau Punkt 3. ist mein Problem. Wie kann man über VBA die Formatierung schreiben, dass zuerst in allen Tabellenblätter die Formatierung zurückgesetzt wird (vieleicht "Selection.ClearFormats"?)
und meine neue (Punkt 2.) in allen Tabellenblätter angewendet wird?

Für Hilfe danke ich im voraus.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nepumuk
Mitglied
Entwicklungsleiter


Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

Beiträge: 351
Registriert: 16.10.2004

erstellt am: 20. Feb. 2007 04:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Robert VBA 10 Unities + Antwort hilfreich

Hallo Robert,

einfach so:

Code:
Public Sub prcFormatting()
    Dim objSheet As Worksheet, objCell As Range
    Dim strAddress As String
    Application.ScreenUpdating = False
    For Each objSheet In ThisWorkbook.Worksheets
        With objSheet.Cells
            .ClearFormats
            Set objCell = .Find(What:="Vorbereitung", LookAt:=xlWhole)
            If Not objCell Is Nothing Then
                strAddress = objCell.Address
                Do
                    With objCell.Font
                        .Bold = True
                        .ColorIndex = 5
                        .Size = 12
                    End With
                    Set objCell = .FindNext(objCell)
                Loop While Not objCell Is Nothing And objCell.Address <> strAddress
            End If
        End With
    Next
    Application.ScreenUpdating = True
End Sub

------------------
Gruß
Nepumuk 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Robert VBA
Mitglied



Sehen Sie sich das Profil von Robert VBA an!   Senden Sie eine Private Message an Robert VBA  Schreiben Sie einen Gästebucheintrag für Robert VBA

Beiträge: 11
Registriert: 20.02.2007

erstellt am: 20. Feb. 2007 21:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank. Das sieht gut aus. Nur die Implemetierung gelingt mir noch nicht recht. Irgendwo muss ich definieren, dass alle Sheets gewählt werden sollen um die Prozedur durchzuführen. Ich bekomme eine Synatyfehler Meldung.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nepumuk
Mitglied
Entwicklungsleiter


Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

Beiträge: 351
Registriert: 16.10.2004

erstellt am: 20. Feb. 2007 21:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Robert VBA 10 Unities + Antwort hilfreich

Hallo Robert,

du musst garnichts ändern, das ist alles schon drin.

------------------
Gruß
Nepumuk 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Robert VBA
Mitglied



Sehen Sie sich das Profil von Robert VBA an!   Senden Sie eine Private Message an Robert VBA  Schreiben Sie einen Gästebucheintrag für Robert VBA

Beiträge: 11
Registriert: 20.02.2007

erstellt am: 20. Feb. 2007 21:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

HM. Wieso bekomme ich dann Dyntaxfehler ausgegeben? Ich habe den code jetzt einfach kopiert ohne etwas zu ändern und trotzdem kommt immer noch "Fehler beim Komilieren" -> "Syntaxfehler".

Woran liegt das?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nepumuk
Mitglied
Entwicklungsleiter


Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

Beiträge: 351
Registriert: 16.10.2004

erstellt am: 20. Feb. 2007 21:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Robert VBA 10 Unities + Antwort hilfreich

Hallo Robert,

das kann ich nicht nachvollziehen, ich habe es unter Excel2000, 2002 und 2003 getestet, null Problemo. Welche Excelversion benutzt du?

------------------
Gruß
Nepumuk 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Robert VBA
Mitglied



Sehen Sie sich das Profil von Robert VBA an!   Senden Sie eine Private Message an Robert VBA  Schreiben Sie einen Gästebucheintrag für Robert VBA

Beiträge: 11
Registriert: 20.02.2007

erstellt am: 20. Feb. 2007 21:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

ich habe die 2003 Version: Hier das ganze Makro:
Sub prcFormatting()
 
    'Test mit Hilfe Forum
    Dim objSheet As Worksheet, objCell As Range
    Dim strAddress As String
    Application.ScreenUpdating = False
    For Each objSheet In ThisWorkbook.Worksheets
        With objSheet.Cells
            .ClearFormats
            Set objCell = .Find(What:="Vorbereitung", LookAt:=xlWhole)
            If Not objCell Is Nothing Then
                strAddress = objCell.Address
                Do
                    With objCell.Font
                        .Bold = True
                        .ColorIndex = 5
                        .Size = 12
                    End With
                    Set objCell = .FindNext(objCell)
                Loop While Not objCell Is Nothing And objCell.Address <> strAddress
            End If
        End With
    Next
    Application.ScreenUpdating = True
End Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Robert VBA
Mitglied



Sehen Sie sich das Profil von Robert VBA an!   Senden Sie eine Private Message an Robert VBA  Schreiben Sie einen Gästebucheintrag für Robert VBA

Beiträge: 11
Registriert: 20.02.2007

erstellt am: 20. Feb. 2007 22:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

ist dem Makro der jeweilige Name der Tabellenblätter egal?
Das Makro muss doch irgendwie wissen, dass es alle Tabellenblätter einbeziehen muss. Das ist aber für mich in deinem code nicht zu erkennen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nepumuk
Mitglied
Entwicklungsleiter


Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

Beiträge: 351
Registriert: 16.10.2004

erstellt am: 20. Feb. 2007 22:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Robert VBA 10 Unities + Antwort hilfreich

Hallo Robert,

das funktioniert ohne zu mucken. Die Tabellen werden damit durchlaufen:

Code:
For Each objSheet In ThisWorkbook.Worksheets

Next


------------------
Gruß
Nepumuk 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Robert VBA
Mitglied



Sehen Sie sich das Profil von Robert VBA an!   Senden Sie eine Private Message an Robert VBA  Schreiben Sie einen Gästebucheintrag für Robert VBA

Beiträge: 11
Registriert: 20.02.2007

erstellt am: 20. Feb. 2007 22:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

ich hatte die SChriftfarbe rot gehabt. Im Moment gebe ich von Hand den Text nochmals ein und die normalen Farben erscheinen (blau, schwarz).

Er meckert aber ganz am Anfang beim Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nepumuk
Mitglied
Entwicklungsleiter


Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

Beiträge: 351
Registriert: 16.10.2004

erstellt am: 20. Feb. 2007 22:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Robert VBA 10 Unities + Antwort hilfreich

Hallo Robert,

da fällt mir nichts mehr dazu ein. 

------------------
Gruß
Nepumuk 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Robert VBA
Mitglied



Sehen Sie sich das Profil von Robert VBA an!   Senden Sie eine Private Message an Robert VBA  Schreiben Sie einen Gästebucheintrag für Robert VBA

Beiträge: 11
Registriert: 20.02.2007

erstellt am: 20. Feb. 2007 22:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Also bei "Sub" und ab dem "Do" mag es was nicht. Ich probiere weiter. Danke für deine Hilfe. Melde mich wenn es klappt.
Alles Gute dir.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Robert VBA
Mitglied



Sehen Sie sich das Profil von Robert VBA an!   Senden Sie eine Private Message an Robert VBA  Schreiben Sie einen Gästebucheintrag für Robert VBA

Beiträge: 11
Registriert: 20.02.2007

erstellt am: 20. Feb. 2007 22:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Irgendwie hab ich das Gefühl dass der Befehl "Do" nicht erkannt wird. Er bleibt in roter Schriftfarbe. Ebenso die Zeile, die  mit "Loop" beginnt.
Habe es versucht über Eigenschaften/Methoden anzeigen und dort ist kein "Do" oder "Loop" vorhanen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Robert VBA
Mitglied



Sehen Sie sich das Profil von Robert VBA an!   Senden Sie eine Private Message an Robert VBA  Schreiben Sie einen Gästebucheintrag für Robert VBA

Beiträge: 11
Registriert: 20.02.2007

erstellt am: 20. Feb. 2007 22:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Moment... Hab auch die beide gelöst. Die müssen am Anfang der Zeile stehen. Dann sind die nicht mehr in roter Schriftfarbe, sondern blau.

Bleibt noch der Anfang: Wenn ich mit F8 beginnen möchte steht da: "Fehler beim Kompilieren" -> "Suc,Funktion oder Property erwartet"

Sagt dir das etwa?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Robert VBA
Mitglied



Sehen Sie sich das Profil von Robert VBA an!   Senden Sie eine Private Message an Robert VBA  Schreiben Sie einen Gästebucheintrag für Robert VBA

Beiträge: 11
Registriert: 20.02.2007

erstellt am: 20. Feb. 2007 22:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

ich meine Sub natürlich

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Robert VBA
Mitglied



Sehen Sie sich das Profil von Robert VBA an!   Senden Sie eine Private Message an Robert VBA  Schreiben Sie einen Gästebucheintrag für Robert VBA

Beiträge: 11
Registriert: 20.02.2007

erstellt am: 20. Feb. 2007 22:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Juhu. Danke.Danke. Es läuft. Es lag an der Kopieaktion. Hab alles von neu selebr abgetippt und es ging jetzt. Es klappt. Danke.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz