Hot News:

Unser Angebot:

  Foren auf CAD.de
  Excel
  VBA - Excel - Suchen und Ersetzen

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
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  VBA - Excel - Suchen und Ersetzen (3736 / mal gelesen)
Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2614
Registriert: 02.10.2006

erstellt am: 22. Aug. 2016 18: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


Excel-Material-01.JPG


Excel-Material-02.JPG

 
Hallo,
ich habe ein VBA Makro, welches ich aus SolidWorks raus starte.
Mit diesem Makro werden Dateieigenschaften in Excel-Tabellen übertragen.
Nachdem die kpl. Tabelle erstellt ist, wird vor dem Speichern noch eine Suche / Ersetze Funktion aufgerufen.

    Dim Zelle As Range
    For Each Zelle In xlWs.UsedRange                               
        Zelle.Value = Replace(Zelle.Value, ";", " |")
    Next Zelle

Diese Suche / Ersetze Funktion geht auch wunderbar.

Nun habe ich aber festgestellt, das mir diese Funktion die Formatierung einer Spalte durcheinanderbringt.
In Bild 01 seht ihr, wie es vor dieser Routine aussieht. Die Zellen sind in Standard formatiert.
In Bild 02 seht ihr, wie es nach dieser Routine aussieht. Die Zellen sind teilweise in Standard bzw. als Zahl formatiert.
Das ist ein fatales Verhalten, das ich mir nicht erklären kann.
Rufe ich in Excel 2007 manuell diese Funktion auf, passiert diese Umformatierung der Spalte Gewicht nicht.
Kann mir jemand dazu eine Erklärung bzw. auch Abhilfe geben?

Momentan behelfe ich mir mit einer eingeschränkten Suche, welche diese Spalte unberührt lässt.
Aber so richtig toll finde ich das nicht.

    Dim Zelle As Range
    For Each Zelle In xlWs.UsedRange.Columns("A:W").Cells                               
        Zelle.Value = Replace(Zelle.Value, ";", " |")
    Next Zelle

Was soll ich tun?
Besten Dank schon mal für diverse Hilfestellungen.

Grüße, Andi

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

Torsten Niemeier
Ehrenmitglied V.I.P. h.c.
Maschinenbau Ingenieur



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

Beiträge: 3815
Registriert: 21.06.2001

"ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform
** CSWP 04/2011 **
** CSWE 08/2011 **

erstellt am: 22. Aug. 2016 19:19    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 Andi Beck 10 Unities + Antwort hilfreich

Hallo Andi.

Da schreibt Dir ja scheinbar irgendwas den Dezimaltrenner um.
Bist Du Dir sicher, dass das tatsächlich durch die gepostete Schleife stattfindet?

Gruß, Torsten

Edit: Ansonsten vielleicht mal mit dem Compare-Argument rumspielen?

[Diese Nachricht wurde von Torsten Niemeier am 22. Aug. 2016 editiert.]

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2614
Registriert: 02.10.2006

erstellt am: 22. Aug. 2016 19:42    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

Zitat:
Original erstellt von Torsten Niemeier:

Bist Du Dir sicher, dass das tatsächlich durch die gepostete Schleife stattfindet?


Hallo Torsten,
hier bist du also auch zu finden. 

Ja, da bin ich mir sicher.
Diese Schleife kam als letztes hinzu, und davor war alles in Ordnung.
Und durch die untere Schleife passiert momentan auch nichts mehr.
Aber das ist purer Zufall, das ich die Suche so simpel einschränken kann.
Wäre die Spalte "Gewicht (X)" weiter links in der Tabelle, hätte das so nicht ausgereicht.

Compare kenne ich noch nicht, muss ich mal suchen gehen.

Grüße, Andi

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

Beverly
Mitglied
Dipl.-Geologe (Rentner)


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

Beiträge: 400
Registriert: 11.08.2007

Win 10 Pro, Office 97 bis Office 2016

erstellt am: 23. Aug. 2016 09:23    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 Andi Beck 10 Unities + Antwort hilfreich

Hi Andy,

mal eine Frage: weshalb läufst du in einer Schleife über alle Zellen? Das geht auch auch auf einen Ritt

Code:
    Columns("A:W").Replace What:=";", Replacement:="|", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

------------------
Bis später,
Karin

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2614
Registriert: 02.10.2006

erstellt am: 23. Aug. 2016 20:36    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


Excel-Material-03.JPG

 
Zitat:
Original erstellt von Beverly:

mal eine Frage: weshalb läufst du in einer Schleife über alle Zellen? Das geht auch auch auf einen Ritt



Hallo Karin,
besten Dank für deine Hilfe.
Nun, die Schleife habe ich durch Googlen gefunden und einfach eingebaut.
Ich kenne mich sehr wenig mit Excel VBA aus und kann deshalb für und wieder schlecht einschätzen.
Ich programmiere aber so einiges in SolidWorks und von hier starte ich auch das Makro.

Dein Code funktioniert wunderbar über die kpl. Tabelle und lässt die Formatierung meiner "Material" Spalte in Ruhe.
Dafür bekomme ich jetzt von Excel diese Meldung, wenn nichts zu Ersetzen war, und das ist zu 99% der Fall.
Und diese Meldung ist auch noch hinter dem SolidWorks Fenster versteckt, sodass man alt und grau und der Prozess nicht abgeschlossen wird.
Es darf keine Meldung kommen, da mein Makro mehrmals durch eine Schleife wiederholt aufgerufen und abgeschlossen wird.

Kann man das Unterbinden?

Grüße, Andi

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

Hofe
Mitglied
Werkzeugmacher


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

Beiträge: 440
Registriert: 12.01.2008

Computer: Aldi
Schreibtisch: Ikea
Werkbank: Baumarkt
Software:
1967-2021, viele Updates und SP's, aber sicher nicht alle, deswegen immer wieder Sicherheitslücken

erstellt am: 23. Aug. 2016 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 Andi Beck 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Andi Beck:
Kann man das Unterbinden?

Hallo Andi,

versuchs mal mit

Application.DisplayAlerts = False

am Anfang des Makros. Am Ende wieder auf "True" setzen, wenn gewünscht.

Grüße

Hofe

------------------
Ist mir egal, wer Dein Vater ist; solange ich angle läuft hier keiner übers Wasser!

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2614
Registriert: 02.10.2006

erstellt am: 23. Aug. 2016 23: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

Hallo Hofe,
besten Dank, mit einer kleinen Änderung funktioniert es, Klasse.


Code:
Excel.Application.DisplayAlerts = False

Ohne "Excel" bekomme ich eine Fehlermeldung.
Wahrscheinlich, weil das Makro aus SolidWorks heraus startet und 2 Application vorhanden sind.

Grüße, Andi

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

Beverly
Mitglied
Dipl.-Geologe (Rentner)


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

Beiträge: 400
Registriert: 11.08.2007

Win 10 Pro, Office 97 bis Office 2016

erstellt am: 24. Aug. 2016 14:05    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 Andi Beck 10 Unities + Antwort hilfreich

Hi Andi,

leider bekomme ich vom Forum keine Meilbenachrichtigung bei neuen Beiträgen, sodass ich deine Rückfrage erste jetzt gelesen habe - aber du hast ja im Prinzip trotzdem die Lösung bekommen. Allerdings muss ich auf folgendes hinweisen:

Zitat:

am Anfang des Makros. Am Ende wieder auf "True" setzen, wenn gewünscht.


Ich würde diesen Parameter am Ende des Makros UNBEDINGT IMMER wieder auf True setzen, denn False bleibt sonst die komplette Sitzung bestehen und es werden dann überhaupt keine Fehlermeldungen mehr von Excel augegeben - und das ist m.E. doch sehr bedenklich.

------------------
Bis später,
Karin

[Diese Nachricht wurde von Beverly am 24. Aug. 2016 editiert.]

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2614
Registriert: 02.10.2006

erstellt am: 24. Aug. 2016 15:29    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 Karin,
danke für deine Rückmeldung, aber mach dir keine Sorgen, ich habe bereits diesen Parameter wieder auf True gesetzt.
Ich dachte auch schon, sicher ist sicher.

Grüße, Andi

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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)2025 CAD.de | Impressum | Datenschutz