Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1260to1264
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

per Mausklick die Vorzeichen in Zellen ändern

per Mausklick die Vorzeichen in Zellen ändern
Manfred
Hallo Excel Freunde,
ich möchte mehrere Zellen untereinander markieren und dann das Vorzeichen der darin stehenden Werte per Makro ändern. Aus 100 soll dann -100 werden und umgekehrt.
Kann mir bitte jemand dabei helfen?
Zusatzfrage:
Besteht eigentlich auch die Möglichkeit, so etwas per Makro auszuführen, wenn sich die Zellen nicht direkt untereinander befinden, sondern verteilt und vorher mit Hilfe der Strg-Taste markiert wurden?
Gruß Manfred
AW: per Mausklick die Vorzeichen in Zellen ändern
09.05.2012 10:23:48
CitizenX
Hi,
Option Explicit
Sub swapMe()
Dim Zelle As Range
On Error Resume Next
For Each Zelle In Selection.SpecialCells(xlCellTypeConstants, xlNumbers)
    Zelle = Zelle * -1
Next
End Sub

Grüße
Steffen
Anzeige
AW: per Mausklick die Vorzeichen in Zellen ändern
09.05.2012 10:39:41
Manfred
Hallo Steffen,
das funktioniert sehr gut wenn mehrere Zellen untereinander markiert sind, aber wenn es nur eine Zelle ist, dann klappt es nicht.
Gruß Manfred
AW: per Mausklick die Vorzeichen in Zellen ändern
09.05.2012 10:47:15
tom
Probier mal das hier:
Sub test()
vvalues = Selection
For k = 1 To UBound(vvalues)
vvalues(k, 1) = -vvalues(k, 1)
Next
Selection = vvalues
End Sub

AW: per Mausklick die Vorzeichen in Zellen ändern
09.05.2012 10:53:26
Manfred
Hallo Tom,
bekomme "Fehler beim Kompilieren: Variable nicht definiert"
Grúß Manfred
AW: per Mausklick die Vorzeichen in Zellen ändern
09.05.2012 11:05:11
CitizenX
Hi,
Option Explicit
Sub swapMe()
Dim Zelle As Range, myRange As Range
On Error Resume Next
Set myRange = IIf(Selection.Count = 1, Selection, Selection.SpecialCells(xlCellTypeConstants, xlNumbers))
For Each Zelle In myRange
    Zelle = Zelle * -1
Next
End Sub

Grüße
Steffen
Anzeige
Formel futsch
09.05.2012 11:10:01
Erich
Hi Steffen,
wenn Selection.Count = 1 ist und in der Zelle eine Formel steht, wird das Vorzeichen gewexelt - und die Formel ist wex. :-(
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Vorzeichen in Zellen ändern
09.05.2012 11:06:28
Erich
Hi Manfred,
vielleicht so:

Option Explicit
Sub swapMe2()
Dim var, rngZ As Range
If Selection.Count = 1 Then
If Selection.HasFormula Then
ElseIf Application.IsNumber(Selection) Then
Selection = -Selection
End If
Else
On Error Resume Next
Set var = Selection.SpecialCells(xlCellTypeConstants, xlNumbers)
var = Err.Number
On Error GoTo 0
If var = 0 Then
For Each rngZ In Selection.SpecialCells(xlCellTypeConstants, xlNumbers)
rngZ = -rngZ
Next rngZ
End If
End If
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
Danke, so funktioniert es (owT)
09.05.2012 11:46:17
Manfred
Noch ein kleiner Fehler drin
09.05.2012 11:52:00
Manfred
Hallo Erich,
es tut sich nichts, wenn zwischendurch eine der markierten Zellen keinen Wert beinhaltet, also leer ist. Zellen mit einer "0" hingegen stören nicht. Es gibt aber auch Zellen, die einfach leer sind.
Gruß Manfred
bitte um konkretes Beispiel
09.05.2012 11:59:11
Erich
Hi Manfred,
könntest du deine Konstellation bitte genau aufschreiben?
Ich hab's noch nicht wirklich verstanden und auch nicht nachvollziehen können - trotz mehrerer Versuche.
Aber ich muss ja nicht weiter im Nebel stochern, wenn du ein konkretes Beispiel hast...
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Beispiel
09.05.2012 12:08:09
Manfred
Hallo Erich,
Beispiel:
Zelle V1 = 100
Zelle V2 = 150
Zelle V3 = leer
Zelle V4 = leer
Zelle V5 = leer
Zelle V6 = -90
Zelle V7 = leer
Zelle V8 = 210
Zelle V9 = leer
Zelle V10 = leer
Zelle V11 = leer
Zelle V12 = leer
Zelle V13 = leer
Zelle V14 = leer
Zelle V15 = 164
Zelle V16 = 0
Zelle V17 = leer
u.s.w.
Sowie leere Zellen dabei sind passiert nichts. Wenn ich solche Zahlenreihe ohne leere Zellen habe, aber es Zellen mit einer NULL gibt, dann wandelt das Makro die Werte richtig um.
Ich hoffe es ist verständlich genug geschrieben.
Gruß Manfred
Anzeige
bei mir funzt es
09.05.2012 12:23:54
Erich
Hi Manfred,
markiert war der grüne Bereich, vorher standen da 3, 4 und 5:
 BC
9-3 
10 WAHR
11-4FALSCH
12 WAHR
13-5 

Formeln der Tabelle
ZelleFormel
C10=ISTLEER(B10)
C11=ISTLEER(B11)
C12=ISTLEER(B12)

Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
bei mir funzt es leider nicht.
09.05.2012 12:33:27
Manfred
Hallo Erich,
warum es bei mir nicht funzt, kann ich nicht sagen. Aber dann werde ich wohl oder übel damit leben müßen.
Trotzdem vielen Dank für deine Hilfe
Gruß Manfred
PS: Ich lasse die Frage mal offen, falls noch jemand eine Lösung/Idee haben sollte.
aber nicht doch!
09.05.2012 12:38:53
Erich
Hi Manfred,
"Aber dann werde ich wohl oder übel damit leben müßen."? Nein, nicht aufgeben!
Wenn du mein letztes Beispiel nachstellst - und auch den grünen Bereich markierst - dann MÜSSEN auch bei dir
die Vorzeichen gewechselt werden. Oder läuft da vielleicht die falsche Routine?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: aber nicht doch!
09.05.2012 12:53:04
Detlef
Hallo Manfred,
habe eben auch mal kurz Deine Vorgabe in V1 bis V16 getestet, funzt auch bei mir einwandfrei.
Gruß Detlef
AW: aber nicht doch!
09.05.2012 14:55:50
Manfred
Hallo Detlef,
ich habe keine Ahnung, warum es bei euch funzt, nur bei mir nicht. Vielleicht liegt es daran, das ich mit einer damals noch in Excel 2003 erstellten Datei arbeite, die zeitweise auch noch mit einer 2003 Version bearbeitet wird. Vielleicht hat der Kompatibilitätsmodus da auch seine Probleme mit. Leider konnte ich mich beruflich nicht gegen die Version 2007 wehren, was ich gerne getan hätte, denn ich klicke seit dem viel mehr, als das es einfacher geworden ist, mit der neuen Version zu arbeiten. Das nur am Rande bemerkt.
Danke für deinen Hinweis, das es bei dir auch funzt.
Gruß Manfred
Anzeige
...bin am verzweifeln
09.05.2012 14:44:26
Manfred
Hallo Erich,
nein, selbst ein neu erstelltes Tabellenblatt mit deinem nachgestellten Beispiel läuft bei mir nicht. Was für eine falsche Routine meinst du? Ich gehe im Visual Basic auf die SUB und lasse das Makro mit Einzelschritten laufen. Es läuft Schritt für Schritt durch und nichts passiert.
Nur wenn ich die leeren Zellen mit einer NULL fülle, das funzt es.
Gruß Manfred
wer wird denn gleich...
09.05.2012 16:06:27
Erich
Hi Manfred,
aufgeben, bevor wird dem Hund auf den Grund gekommen sind ;-)
Hier meine Mappe mit dem "swapMe2": https://www.herber.de/bbs/user/80086.xlsm
Wenn du nun das Problem nicht sofort findest und mir schreiben kannst, lade doch bitte mal deine Mappe hoch,
dann kann ich mitsuchen!
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
Ein Hund namens Office 2007
10.05.2012 08:02:04
Manfred
Hallo Erich,
ich brauche meine Datei gar nicht erst hoch landen, denn selbst deine geschickte Datei läuft hier eben so wenig wie meine. Der Hund heißt hier also Office 2007 mit seinen Tücken. Hast du eine Ahnung, an welchen Einstellungen es liegen könnte?
Ich weiß schon, warum ich zu Hause weiterhin die Version Office 2003 verwende.
Gruß Manfred
AW: Ein Hund namens Office 2007
10.05.2012 08:32:02
fcs
Hallo Manfred,
hier dann noch eine Variante.
Ein Problem kann es grundsätzlich geben, wenn die Daten importiert wurden und die Zahlen als Text in der Tabelle stehen.
Gruß
Franz
Sub swapMe3()
Dim rngZ As Range
For Each rngZ In Selection.Cells
If IsEmpty(rngZ) Then
'do nothing
ElseIf rngZ.HasFormula = True Then
'do nothing
ElseIf IsDate(rngZ) Then
'do nothing
ElseIf Application.WorksheetFunction.IsText(rngZ) Then
'do nothing
ElseIf rngZ.Value = True Or rngZ = False Then
'do nothing
Else
rngZ.Value = -1 * rngZ.Value
End If
Next
End Sub

Anzeige
AW: Ein Hund namens Office 2007
10.05.2012 08:40:41
Manfred
Hallo Franz,
aber die Date von Erich wurde neu erstellt und nicht importiert, das wundert mich. Aber egal, deine Variante funktioniert nun auch bei meiner Office 2007 Version.
Vielen vielen Dank dafür.
Es ist doch immer wieder schön, wenn einem hier im Forum so gut und kompetent geholfen werden kann.
Nochmals meinen Dank auch alle anderen Helferlein.
Gruß Manfred

323 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige