Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1564to1568
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 If-Funktion

VBA If-Funktion
30.06.2017 07:01:05
Chris
Hallo zusammen,
ich habe folgendes Problem:
In meiner Tabelle steht in der Spalte C entweder der Wert "K" oder "V" und in Spalte D positive Zahlen. Wenn in C "V" steht, soll in Spalte D der Wert negativ werden. Ich habe versucht, das mit folgendem Makro zu lösen:
Sub Makro()
z= Application.WorksheetFunction.CountA(Sheet("Tabelle").Range("C:C")
Columns("C:C").Select
For i = 1 to z
If ActiveCell.Value = "V" Then
ActiveCell.Offset.Value = ActiveCell.Offset.Value * -1
End If
Next i
End Sub

Das Makro läuft ohne Fehlermeldung durch, ändert aber in Spalte D nicht die Werte, wenn in Spalte C die Bedingung erfüllt ist.
Vielen Dank schon mal für Eure Hilfe!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA If-Funktion
30.06.2017 07:12:39
Hajo_Zi

Option Explicit
Sub Makro()
Dim Loletzte As Long
Dim LoI As Long
Loletzte = IIf(IsEmpty(Cells(Rows.Count, 3)), _
Cells(Rows.Count, 3).End(xlUp).Row, Rows.Count)
For LoI = 1 To Loletzte
If Cells(LoI, 3) = "V" Then
Cells(LoI, 4) = Cells(LoI, 4) * -1
End If
Next LoI
End Sub

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Anzeige
AW: oder ganz sicher
30.06.2017 07:13:45
Hajo_Zi

Option Explicit
Sub Makro()
Dim Loletzte As Long
Dim LoI As Long
Loletzte = IIf(IsEmpty(Cells(Rows.Count, 3)), _
Cells(Rows.Count, 3).End(xlUp).Row, Rows.Count)
For LoI = 1 To Loletzte
If Cells(LoI, 3) = "V" Then
Cells(LoI, 4) = Abs(Cells(LoI, 4)) * -1
End If
Next LoI
End Sub

Gruß Hajo
AW: oder ganz sicher
30.06.2017 07:18:34
Chris
Vielen Dank, funktioniert einwandfrei!
AW: VBA If-Funktion
30.06.2017 07:19:20
RPP63
Moin!
Ich würde über ein Array gehen, ist sehr schnell:
Sub RPP()
Dim arrRPP(), i#
arrRPP = Range(Cells(1, 3), Cells(1, 4).End(xlDown))
For i = 1 To Ubound(arrRPP)
  If arrRPP(i, 1) = "V" Then arrRPP(i, 2) = arrRPP(i, 2) * (-1)
Next
Range(Cells(1, 3), Cells(1, 4).End(xlDown)) = arrRPP
End Sub
Gruß Ralf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige