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

Positive Zahl umwandeln in negative Zahl per VBA

Forumthread: Positive Zahl umwandeln in negative Zahl per VBA

Positive Zahl umwandeln in negative Zahl per VBA
07.03.2015 23:09:53
baumi

Hallo,
gibt es eine Möglichkeit per VBA eine Positive Zahl in eine Negative Zahl (A1) umzuwandeln, wenn in Feld B1 z.B. "A" steht, und wenn ein anderer Buchstabe die Zahl in A1 so bleibt wie geschrieben.
Ist so was möglich, über Tipps, ob das gehen könnte, wäre ich happy
MfG

Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Positive Zahl umwandeln in negative Zahl per VBA
08.03.2015 00:16:33
Christian
for i=1 to 100
if cell(i,2)="B"
cell(i,1)=cell(i,1)*-1
End if
Next i
so ungefähr

Positive Zahl umwandeln in negative Zahl per VBA
08.03.2015 09:47:26
baumi
Hallo,
kann leider damit nichts anfangen, wäre es möglich mir das genauer zu erklären...
Habe die Daten unter Code anzeigen eingegeben, aber passieren tut nix..
habe ich irgendetwas noch vergessen...???
MfG

Anzeige
AW: Positive Zahl umwandeln in negative Zahl per VBA
08.03.2015 10:26:45
Hajo_Zi
schreib vor den Code

Sub Loeschen() und danach End Sub
starte den VBA Editor (Alt+F11), Bild sollte zweigeteilt sein ansonsten Strg+R, gehe auf Deine Datei, rechte Maustaste, Einfügen Modul, Code ins rechte Fenster kopieren, VBA Editor schließen.
Register Ansicht, Befehlsgruppe Makros, auf Makro klicken, Makros anzeigen, Makro auswählen und ausführen.

Anzeige
VBA: Positive Zahl bedingt in negative Zahl
08.03.2015 14:47:41
baumi
Hallo,
danke für den Tipp, der haut schon fast hin, wenn, wie muss die zeile aus sehen, wenn an anderer Stelle z.B. Spalte E unterschiedliche Zahlen reinkommen und in Spalte F "A" und andere Buchstaben, und weiter, es soll jeweils die ganze Spalte davon betroffen sein...
Warum muss man dieses Makro immer ausführen????
gibt es nicht die Möglichkeit, das ganze zu automatisieren...ich gebe eine zahl ein, und in der nächsten Spalte einen Buchstaben, und wenn der bestimmte Buchstabe ein A ist soll aus der Zahl ein mit einem Minus werden...
Mfg

Anzeige
AW: VBA: Positive Zahl bedingt in negative Zahl
10.03.2015 20:07:06
Erich G.
Hi Vorname(?),
klar, es gibt die die Möglichkeit, das Ganze zu automatisieren. :-)
Der folgende Code gehört in den Code des Tabellenblatts, in dem er wirken soll:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngM As Range
If Target.Count = 1 Then
If Target.Column < Columns.Count Then
If Application.IsNumber(Target) And _
Target.Offset(, 1) = "A" Then Set rngM = Target
End If
If rngM Is Nothing And Target.Column > 1 Then
If Application.IsNumber(Target.Offset(, -1)) And _
Target = "A" Then Set rngM = Target.Offset(, -1)
End If
If Not rngM Is Nothing Then
Application.EnableEvents = False
rngM = -rngM
Application.EnableEvents = True
End If
End If
End Sub
Er sollte immer laufen, nachdem genau eine Zelle des Tabellenblatts geändert wurde.
Werden mehrere Zellen auf einmal geändert (durch Kopieren, AutoAusfüllen, ...), läuft er nicht.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: VBA: Positive Zahl bedingt in negative Zahl
10.03.2015 23:26:06
baumi
Hallo,
die Lösung ist echt super, wenn nicht schon Kanone, aber wenn ich jetzt den Wert "A" wieder raus und durch B C D oder was anderes ersetzten möchte, muss die Zahl neu eingegeben werden, ist das so richtig oder gibt es noch ne Möglichkeit es so zu ändern, das daraus wieder ein positiver Wert wird...
Vielen, vielen Dank nochmal
MfG Baumi

Anzeige
vielleicht besser per Formel
11.03.2015 10:22:22
Erich G.
Hi Vorname(?),
man kann mit VBA ziemlich viel anstellen. Was du jetzt willst, bedarf wieder einer anderen Herangehensweise.
Es wäre wohl sinnvoll, wenn du dir zunächst Klarheit über die gewünschte Funktionalität verschaffen würdest.
Dann bräuchtest du nicht - wie es hier gerade wiederholt geschehen ist - auf jede Lösung
mit einer veränderten/erweiterten Fragestellung zu reagieren.
An deiner Stelle würde ich das jetzt nicht per VBA machen, sondern einfach per Formel in Excel.
Dazu brauchst du nur für die Zahlen je eine Eingabe- und eine Wert-Zelle.
So ginge das z. B.:
Anzeige
AW: vielleicht besser per Formel
11.03.2015 19:40:52
Baumi
Hallo Erich,
danke für die Hilfe.
Deine Formel jetzt ist auch nicht verkehrt, würde aber ein MEHR von Arbeit bedeuten...
(was meine Datenbank betrifft)...
Die VBA Lösung ist die optimale Lösung, entspricht meiner Vorstellung.
alles was danach kommt, ist die Frage, ob man dieses noch optimieren könnte.
Gruß Baumi

Anzeige
Donnerwetter?
08.03.2015 10:56:19
Erich G.
Hi,
könnte es sein, dass du uns darüber informieren möchtest, dass du diese (bzw. eine ähnliche) Frage
auch in mindestens einem anderen Forum gestellt hast?
Vermeidbare Doppelarbeit bei den dortigen oder hiesigen Antwortern wäre dir doch sicher auch unangenehm.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Donnerwetter?
09.03.2015 23:07:30
baumi
Hallo,
(könnte es sein, dass du uns darüber informieren möchtest, dass du diese (bzw. eine ähnliche) Frage
auch in mindestens einem anderen Forum gestellt hast?)
ja habe ich...
(Vermeidbare Doppelarbeit bei den dortigen oder hiesigen Antwortern wäre dir doch sicher auch unangenehm.)
da ich kein Fachwissen habe, kann ich diese Frage nicht beantworten... aber, um einen Weg zum Ziel zu finden, nehme ich gerne Umwege in Kauf, das Internet oder das WWW ist groß, und woher soll ich wissen wer alles im welchem Forum zuhause ist...
ich musste mir auch schon anhören, ich soll mich auf die Suche begeben wenn ich was erreichen will.
jetzt suche ich, und das ist wieder .....????
Danke für den Rat...
MfG

Anzeige
AW: Forums-FAQ
10.03.2015 17:35:51
baumi
Hallo,
danke für die Belehrung,
danke für die Hilfe, die mir so toll herüber gebracht wurde...
MfG

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Positive Zahl in Negative Zahl umwandeln mit VBA und Excel


Schritt-für-Schritt-Anleitung

Um eine positive Zahl in eine negative Zahl in Excel mittels VBA umzuwandeln, kannst du die folgenden Schritte befolgen:

  1. VBA-Editor öffnen: Drücke Alt + F11, um den VBA-Editor zu öffnen.

  2. Modul einfügen: Klicke mit der rechten Maustaste auf deine Arbeitsmappe und wähle Einfügen > Modul.

  3. Code einfügen: Kopiere den folgenden VBA-Code in das rechte Fenster:

    Sub ConvertPositiveToNegative()
       Dim i As Integer
       For i = 1 To 100
           If Cells(i, 2).Value = "A" Then
               Cells(i, 1).Value = Cells(i, 1).Value * -1
           End If
       Next i
    End Sub
  4. Makro ausführen: Gehe zurück zu Excel, klicke auf Entwicklertools > Makros, wähle dein Makro aus und klicke auf Ausführen.

Alternativ kannst du den automatisch ausgeführten Code verwenden, der bei einer Änderung in einer Zelle reagiert:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngM As Range
    If Target.Count = 1 Then
        If Target.Column < Columns.Count Then
            If Application.IsNumber(Target) And Target.Offset(, 1) = "A" Then Set rngM = Target
        End If
        If rngM Is Nothing And Target.Column > 1 Then
            If Application.IsNumber(Target.Offset(, -1)) And Target = "A" Then Set rngM = Target.Offset(, -1)
        End If
        If Not rngM Is Nothing Then
            Application.EnableEvents = False
            rngM.Value = -rngM.Value
            Application.EnableEvents = True
        End If
    End If
End Sub

Häufige Fehler und Lösungen

  • Makro funktioniert nicht: Stelle sicher, dass du das Makro korrekt in ein Modul eingefügt hast. Es sollte in einem Standardmodul und nicht im Code des Arbeitsblatts sein.
  • Zellen nicht aktualisieren: Überprüfe, ob das Makro für das richtige Tabellenblatt aktiviert ist. Der Code sollte in das spezifische Arbeitsblatt eingefügt werden, in dem die Änderungen überwacht werden sollen.
  • Excel gibt Fehlermeldungen aus: Achte darauf, dass du das richtige Format für die Zellen verwendest. Zahlen sollten als solche und nicht als Text eingegeben werden.

Alternative Methoden

Falls du keine VBA-Lösung verwenden möchtest, kannst du auch eine Excel-Formel nutzen, um eine positive Zahl in eine negative Zahl umzuwandeln. Hier ist ein Beispiel:

  • Formel: Wenn deine positive Zahl in Zelle A1 steht und du sie in Zelle B1 negativ darstellen möchtest, kannst du folgende Formel verwenden:

    =WENN(A1>0; -A1; A1)

Diese Formel prüft, ob die Zahl in A1 positiv ist und wandelt sie bei Bedarf in eine negative Zahl um.


Praktische Beispiele

  1. VBA-Code zur Umwandlung: Der oben gezeigte VBA-Code kann für eine beliebige Anzahl von Zeilen angepasst werden. Ändere einfach die Schleifenparameter, um mehr oder weniger Zeilen zu verarbeiten.

  2. Formel nutzen: Wenn du eine ganze Spalte von positiven Zahlen hast, kannst du die Formel nach unten ziehen, um alle Werte in negative Zahlen umzuwandeln.

  3. Automatisierung: Mit dem Worksheet_Change-Ereignis in VBA wird der Wert automatisch umgewandelt, sobald ein Buchstabe in die benachbarte Zelle eingegeben wird.


Tipps für Profis

  • Datenvalidierung: Stelle sicher, dass du die Datenvalidierung in Excel verwendest, um sicherzustellen, dass nur gültige Buchstaben eingegeben werden, bevor die Umwandlung erfolgt.
  • Fehlerbehandlung: Integriere Fehlerbehandlungsroutinen in deinen VBA-Code, um unerwartete Fehler während der Ausführung zu vermeiden.
  • Versionen beachten: Überprüfe die Excel-Version, da sich die Unterstützung für Makros in neueren Versionen verbessern kann.

FAQ: Häufige Fragen

1. Wie kann ich in Excel positive Zahlen in negative umwandeln?
Du kannst dies entweder mit einer VBA-Lösung oder einer Excel-Formel tun. Die VBA-Option ist ideal für Automatisierungen.

2. Funktioniert das auch ohne VBA?
Ja, du kannst mit einer einfachen Excel-Formel arbeiten, um positive Zahlen in negative umzuwandeln.

3. Kann ich auch mehrere Zellen gleichzeitig umwandeln?
Ja, dies ist möglich, indem du die Formel in alle gewünschten Zellen ziehst oder den VBA-Code anpasst, um mehrere Zeilen zu verarbeiten.

4. Was passiert, wenn ich den Buchstaben ändere?
Wenn du einen anderen Buchstaben eingibst, bleibt die Zahl unverändert, wenn du die VBA-Lösung verwendest. Bei der Formel musst du die Eingabe in die Zelle zurücksetzen, um die Originalzahl anzuzeigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige