Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1532to1536
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
Inhaltsverzeichnis

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

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 …
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
Anzeige
per Formel
09.01.2017 13:09:02
WF
Hi,
=MAX(A1;-WECHSELN(A1;"-";))
WF
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 :-?
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-
Anzeige
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige