Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA als Text gespeicherte Prozentzahl in Zahl

Forumthread: VBA als Text gespeicherte Prozentzahl in Zahl

VBA als Text gespeicherte Prozentzahl in Zahl
12.10.2019 22:50:27
Alexander
Hallo,
ich hab hier im Forum schon viel gelernt durch eure Beiträge.
Bei meinem aktuellen Problem komme ich aber mit lesen nicht weiter, da nichts zu funktionieren scheint.
Problemstellung:
Ich hab eine Exceldatei die von mehreren Benutzern befüllt wird. In einer Spalte mit Prozentangaben tauchen immer wieder Zahlen als Text auf und werden von Excel richtigerweise markiert (grünes Dreieck).
Dies kann man nun manuell ganz einfach beheben, indem man die Spalte markiert und über das Menü "TextinSpalten"(TiS) ausführt.
Leider tritt das so oft auf, dass ich dies in ein Makro verpacken wollte welches z.B beim öffnen der Datei einfach die Spalte mit TiS konvertieren. Das klappe anfangs auch mal, aber jetzt nicht mehr.
Nun reagiert Excel TiS über VBA ausgeführt anders als manuell über den Button. über VBA wird das Dezimalzeichen , mit . ersetzt
Ich hab eine kleine Versuchsdatei angehängt in der ich verschiedene Werte und Formate über Makro versuche zu vereinheitlichen.
Der alte Trick mit Berechnung klappt nicht, Funktionen nicht, Format & FormatLocal nicht, TiS nicht...
Wenn da jemand eine Tipp hätte wie das auch klappt.
https://www.herber.de/bbs/user/132492.xlsm
Danke
Alexander
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA als Text gespeicherte Prozentzahl in Zahl
13.10.2019 01:18:26
GerdL
Moin Alexander,
wahrscheinlich müsstest du nur die Trennzeichen bei TexttoColumns einstellen.
Sub Makro2()
If InStr(ActiveCell, "%") > 0 Then
ActiveCell.NumberFormat = "general"
ActiveCell = Replace(ActiveCell, "%", "") / 100
ActiveCell.NumberFormat = "0.00 %"
End If
End Sub
Gruß Gerd
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Prozentzahlen in Excel mit VBA in Zahlen umwandeln


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei, in der die Prozentzahlen als Text gespeichert sind.

  2. Öffne den VBA-Editor mit ALT + F11.

  3. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" -> Einfügen -> Modul.

  4. Kopiere den folgenden VBA-Code in das Modul:

    Sub ProzentInZahlUmwandeln()
        Dim cell As Range
    
        For Each cell In Selection
            If InStr(cell.Value, "%") > 0 Then
                cell.NumberFormat = "General"
                cell.Value = Replace(cell.Value, "%", "") / 100
                cell.NumberFormat = "0.00 %"
            End If
        Next cell
    End Sub
  5. Markiere die Zellen, in denen du die Prozentzahlen umwandeln möchtest.

  6. Führe das Makro aus: Gehe zurück zu Excel, drücke ALT + F8, wähle ProzentInZahlUmwandeln und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Grünes Dreieck in Zellen: Das grüne Dreieck zeigt an, dass Excel die Werte als Text erkennt. Verwende die oben genannte Methode, um diese in Zahlen umzuwandeln.
  • Dezimalzeichen wird falsch angezeigt: Achte darauf, dass die Trennzeichen in den Regionseinstellungen deines Systems korrekt sind. Der Code wandelt das Prozentzeichen korrekt um, aber die Anzeige kann durch die Systemeinstellungen beeinflusst werden.

Alternative Methoden

  • Text in Spalten: Du kannst die Funktion "Text in Spalten" manuell verwenden, um die Prozentwerte zu konvertieren. Markiere die Spalte, gehe zu "Daten" -> "Text in Spalten" und folge den Anweisungen.
  • Formel zur Umwandlung: Eine einfache Formel könnte so aussehen: =WERT(ERSETZEN(A1;LÄNGE(A1);1;""))/100, um das Prozentzeichen zu entfernen und in eine Zahl umzuwandeln.

Praktische Beispiele

  1. Beispiel 1: Du hast in der Zelle A1 den Wert "25%". Nach Ausführung des Makros wird der Wert in 0,25 umgewandelt und das Format auf 25,00 % gesetzt.
  2. Beispiel 2: In der Zelle B2 steht "50%". Wenn du die Zelle auswählst und das Makro ausführst, wird sie ebenfalls in 0,50 umgewandelt.

Tipps für Profis

  • Automatisiere den Prozess: Du kannst das Makro so anpassen, dass es beim Öffnen der Datei automatisch ausgeführt wird. Füge dazu den Code in das ThisWorkbook-Modul ein und verwende das Workbook_Open-Ereignis.
  • Fehlerbehandlung einfügen: Füge eine Fehlerbehandlung hinzu, um sicherzustellen, dass der Code nicht bei unerwarteten Eingaben abbricht.

FAQ: Häufige Fragen

1. Wie kann ich das Excel grüne Dreieck in eine Zahl umwandeln?
Verwende das oben beschriebene Makro oder die "Text in Spalten"-Funktion.

2. Was passiert mit den Originaldaten nach der Umwandlung?
Die Originaldaten werden durch die Umwandlung ersetzt. Du solltest eine Sicherungskopie deiner Daten anlegen, bevor du das Makro ausführst.

3. Kann ich das Makro auf mehrere Spalten gleichzeitig anwenden?
Ja, markiere einfach alle Spalten, die du umwandeln möchtest, und führe das Makro aus. Es wird auf jede markierte Zelle angewendet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige