Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA - Minuszeichen voranstellen

VBA - Minuszeichen voranstellen
09.01.2017 10:57:15
Torsten
Hallo beisammen,
ich habe ein kleines Makro, mit dem ich ein Minuszeichen vor die Zahl setzen kann, welches nach dem Download aus SAP zunächst hinter der Zahl stand.
Leider erkennt Excel die Zahl erst dann als solche, wenn ich anschließend mit F2 in die Zelle gehe und mit ENTER abschliesse. Wie kann ich diese kleine Aktion in das Makro übernehemen?
Das Aufzeichnen mit dem Makrorekorder hilft mir dabei leider nicht.
Vielen Dank für Eure Hilfestellung.
Gruß
Torsten
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Minuszeichen voranstellen
09.01.2017 11:02:20
Anton
Hallo Torsten,
normal den Wert *1 nehmen.
VG Anton
erledigt - VBA - Minuszeichen voranstellen
09.01.2017 12:51:53
Torsten
Hallo Anton,
oh jeee, manchmal sieht man den Wald vor lauter Bäumen nicht..
Vielen Dank für Deinen Tip.
Gruß
Torsten
Das Umsetzen des Minuszeichens ist überflüssig, ..
09.01.2017 12:49:49
Luc:-?
…Torsten;
verwende die vbFktt CDbl bzw CLng je nachdem, ob (auch) Dezimal- oder immer Ganzzahl vorliegt! Das ist weniger aufwendig als dein Makro + Antons Lösung.
Gruß, Luc :-?
Besser informiert mit …
Anzeige
Das gilt übrigens auch für Antons Vorschlag! owT
09.01.2017 12:53:14
Luc:-?
:-?
Das Umsetzen des Minuszeichens ist überflüssig, ..
09.01.2017 12:55:26
Torsten
Hallo Luc,
was Du hier beschreibst kenne ich noch nicht. Schau ich mir aber bei Gelegenheit mal näher an.
Schönen Dank für Deine Rückmeldung.
Gruß
Torsten
per Formel
09.01.2017 13:09:02
WF
Hi,
=MAX(A1;-WECHSELN(A1;"-";))
WF
Anzeige
Das setzt voraus, dass Xl die positiven SAP-...
09.01.2017 13:24:29
Luc:-?
…Zahlen als Zahl und nicht als Text importiert, Walter!
Außerdem wird so eine zusätzliche Spalte benötigt, während man mit VBA den importierten Originalwert direkt anpassen kann.
Gutes Neues! Gruß, Luc :-?
...was mich auf den Gedanken bringt, ...
09.01.2017 13:32:23
Luc:-?
…hierfür die Xl-Methode Text-in-Spalten einzusetzen und dabei die Option Nachgestelltes Minuszeichen für negative Zahlen anzuhaken. Das fktioniert dann ebenfalls mit dem Original und benötigt keine zusätzliche Spalte und kein VBA.
Luc :-?
Anzeige
Was Kürzeres fällt mir grad nicht ein:
09.01.2017 14:49:15
lupo1
Für positive Zahlen mit ' davor als Text
=-WENNFEHLER(-A1;WECHSELN(A1;"-";))
kann mit
'4
4
4-
-4
0
0-
AW: VBA - Minuszeichen voranstellen
09.01.2017 13:36:03
Daniel
Hi
ich gehe mal davon aus, dass das nicht nur eine Zahl ist, die da umgewandelt werden muss, sondern viele.
hierfür gibt es zwei verschiedene Möglichkeiten, dass auch für grössere Datenmengen schnell und mit geringem Programmieraufwand zu tun:
1. mit der betroffenen Spalte die Funktion DATEN - DATENTOOLS - TEXT IN SPALTEN ausführen.
hier bei die Einstellungen so wählen, dass keine neuen Spalten entstehen (alle Trennzeichen abwählen)
Vorteil: du kannst in der Funktion noch bestimmen, ob der Punkt oder das Komma das Dezimaltrennzeichen ist
Nachteil: kann immer nur für eine Spalte ausgeführt werden, bei mehreren Spalten musst du den Vorgang für jede Spalte wiederholt werden.
Codebeispiel
Columns("A:A").TextToColumns Destination:=Range("A1"), _
DataType:=xlFixedWidth, _
FieldInfo:=Array(0, 1), _
DecimalSeparator:=","

2. Kopiere eine leere Zellen und füge sie mit den Optionen:
- Inhalte: Werte
- Vorgang: Addieren
auf alle umzuwandelnden Zellen ein, auch hierbei werden Texte, die wie Zahlen aussehen in echte Zahlen umgewandelt.
Vorteil: kann auch auf mehrere Spalten gleichzeitig angewendet werden
Nachteil: Dezimaltrenner wird vom System bestimmt.
Codebeispel
Cells(Rows.Count, Columns.Count).Copy
Columns("A:A").PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd
Gruß Daniel
Anzeige
Gratuliere, das ist jetzt wohl die ...
09.01.2017 13:49:11
Luc:-?
…(VBA-)umfangreichste (um nicht zu sagen -umständlichste) Lösung, Daniel!
Das kann man alles (natürlich auch DezimalPkt zu -Komma) derart auch manuell erreichen…
Gruß, Luc :-?
AW: Gratuliere, das ist jetzt wohl die ...
09.01.2017 14:12:36
Daniel
Nee Luc, das ist sind die VBA-einfachsten Lösungen die es gibt.
die zweite Variante braucht zwei Programmzeilen, um auf einem kompletten Tabellenblatt alle Textzahlen in Echtzahlen umzuwandeln.
die erste Variante braucht für ein komplettes Tabellenblatt mit allen Spalten drei Programmzeilen (für eine Spalte nur eine).
Von Hand lassen sich beide Methoden mit wenigen Mausklicks ausführen. (Tastatur unnötig)
Wenn du mir eine Methode zeigst, die weniger Umfangreich bist, bist du mein Held, wenn dir das nicht gelingt, bist du das, für was ich dich sowieso schon halte.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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