Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1132to1136
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

Bestimmte Werte ins Negativ setzen

Bestimmte Werte ins Negativ setzen
Sascha
Hallo,
kann ich folgendes mit VBA lösen?
Wenn ich in der Spalte B1 eine Belegnummer beginnent mit "GUT" oder "AV" stehen habe, dann soll der Wert in G1 ins negative gesetzt werden (G1*-1).
Hab mal wieder keine Idee wie dies lösen kann.
Vorab vielen Dank für Eure Ideen oder Anregungen.
Gruß
Sascha

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Zeile per Autofilter filtern und Werte negieren
26.01.2010 14:18:55
NoNet
Hallo Sascha,
hier eine Lösungsmöglichkeit per Autofilter :
Sub ZellenNegierenPerAutofilterAuswahl()
Dim rngZelle As Range
ActiveSheet.[B1].AutoFilter Field:=2, Criteria1:="=GUT*", Operator:=xlOr, _
Criteria2:="=AV*"
For Each rngZelle In Range("G1:G" & Cells(Rows.Count, 7).End(xlUp).Row).SpecialCells( _
xlCellTypeVisible)
If IsNumeric(rngZelle.Value) Then rngZelle.Value = rngZelle.Value * -1
Next
ActiveSheet.AutoFilterMode = False 'Autofilter wieder löschen
End Sub
Gruß, NoNet
AW: Bestimmte Werte ins Negativ setzen
26.01.2010 14:24:27
fcs
Hallo Sascha,
zum Beispiel so
Gruß
Franz
Sub InvertSpalteG()
Dim Zeile As Long
Dim wks As Worksheet
Set wks = ActiveSheet
Application.ScreenUpdating = False
With wks
'Zeilen  Spalte B bis letzte Zeile mit Daten bearbeiten
For Zeile = 1 To .Cells(.Rows.Count, 2).End(xlUp).Row
If Left(.Cells(Zeile, 2), 3) = "GUT" Or Left(.Cells(Zeile, 2), 2) = "AV" Then
'In Spalte G Wert invertieren
If IsNumeric(.Cells(Zeile, 7).Value) Then
.Cells(Zeile, 7).Value = .Cells(Zeile, 7).Value * (-1)
End If
End If
Next
End With
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Bestimmte Werte ins Negativ setzen
26.01.2010 16:43:39
Sascha
Hallo Franz,
genau so hatte ich mir das vorgestellt.
Vielen Dank
Sascha
Problem - Code von Nonet und FCS
26.01.2010 20:09:29
Nonet
Hallo NoNet und fcs,
für beide eure Codes gilt: Wenn man ihn zweimal laufen lässt werden die Werte wieder positiv.
Das kann dann zum Problem werden, wenn in Spalte B nach erstem Makrolauf noch Zeilen mit "GUT" und "AV" angehangen werden. Beim zweiten Makrolauf werden diese dann in G negativ, aber die, die vorher dort (nach dem ersten Lauf) negativ waren, werden wieder positiv.
Es müsste also was in den Code eingebaut werden, der die bereits Negativen auch negativ lässt.
Gruß,
Beate
rngZelle.Value=Abs(rngZelle.Value) * -1
26.01.2010 20:27:24
NoNet
Hallihallo Beate :-),
grundsätzlich hast Du Recht, aber in der Aufgabenstellung stand ja ausdrücklich, dass die Werte mit -1 multipliziert werden sollten - unabhängig vom aktuellen Wert. Wenn also zuvor schon negative Werte in der Spalte standen, würden diese zu positiven Werten und vv. Die "Negation der Negation" wurde ja nirgends explizit ausgeschlossen...
Falls es so sein sollte wie von Dir angedeutet, könnte man das z.B. so lösen :
rngZelle.Value=Abs(rngZelle.Value) * -1
oder auch so : rngZelle.Value = rngZelle.Value * Iif(rngZelle.Value<0, 1, -1)
Gruß, NoNet
Anzeige
AW: rngZelle.Value=Abs(rngZelle.Value) * -1
26.01.2010 22:07:26
Beate
Hallo Nonet,
die erstere Lösung kann ich mir nicht als gewünschtes Ergebnis vorstellen, auch wenn nicht so klar erfragt, weil die Auswirkung vielleicht noch unbedacht war.
Danke für deine Antwort.
Grüße,
Beate

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige