Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Wenn funtion/bedingte Formatierung?
#1
Hallo,
bei meiner Excel Datei werden durch ein VBA-Programm Werte von einem Tabellenblatt ins nächste übernommen.

In einer bestiimte Zelle(G33) möchte ich jedoch folgendes hinbekommen:

- wenn Wert positiv (Plusbeträge), soll anstatt der Plusbetrag der Betrag 0€ dort stehen!


Ist das über eine Zellenprogrammierung möglich?
Wie müßte so eine Formel aussehen?

Gruss Markus
Antworten Top
#2
Moin!
Ginge über ein benutzerdefiniertes Zahlenformat:
C
10 €

ZelleFormatWert
C1"0" €;[Rot]-#.##0,00 €123,454

Allerdings steht dann dennoch der positive Wert in der Zelle, wird jedoch nicht angezeigt.
Wenn tatsächlich 0 drin stehen soll, dann =MIN(0;DeineFormel)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Maximus
Antworten Top
#3
Hallo Markus,

wenn das per VBA übernommen wird, kann man das ja mit einbauen:
  With Worksheets("Tabelle1") 'entsprechend anpassen
   With .Range("G33")
     If .Value > 0 Then .Value = 0
   End With
 End With
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Maximus
Antworten Top
#4
Hi Ralf,
was meinst du mit "deine Formel"?

=MIN(0;Deine Formel)

Eine Idee die mir beim Ausprobieren gekommen ist, sich einfach den positiven Wert durchstreichen lassen.
Durch:
-bedingte Formatierung, Neue Regel, nur Zelle formatieren,Zellwert kleiner als Null, Durchstreifen
Antworten Top
#5
Danke Kuver, werde ich ausprobieren, weiss nicht ob ich diese Formel mit eingebaut bekomme, weil ich das VBA Programm nicht selber geschrieben habe und somit nicht weiss wo genau dieses Teilstück mit hin muss.
Antworten Top
#6
Hallo, wie kann man folgende VBA Programme verbinden, dass automatisch beide Programme abgespielt werden:

Programm 1:


Code:
Sub Kopie()
    Dim wks As Worksheet
On Error Resume Next
'ActiveSheet.Copy after:=Worksheets(Worksheets.Count)

   ActiveSheet.Copy after:=Worksheets(Worksheets.Count)
   Sheets(Sheets.Count).Name = "Kopie" & Sheets.Count - 2
   With Worksheets("Kopie" & Sheets.Count - 3)
    .Range("F45").Copy
     Range("A45").PasteSpecial Paste:=xlPasteValues
    .Range("E28").Copy
     Range("B28").PasteSpecial Paste:=xlPasteValues
     Range("C8").PasteSpecial Paste:=xlPasteValues
    .Range("G38").Copy
     Range("G33").PasteSpecial Paste:=xlPasteValues
   
   
   ActiveSheet.Buttons.Add(868.5, 232.5, 76.5, 34.5).Select
    Selection.OnAction = "kopieren"
    Selection.Characters.Text = "nach Spielabschnitt kopieren"
    ActiveSheet.Shapes("Button 1").ScaleHeight 1.7156877175, msoFalse, _
        msoScaleFromTopLeft
    ActiveSheet.Shapes("Button 1").ScaleHeight 1.0114284583, msoFalse, _
        msoScaleFromTopLeft
        
    Range("M21").Select
    Range("L1").Select
    
   Application.CutCopyMode = False
   
End With
End Sub


Programm 2:

With Worksheets("Tabelle1") 'entsprechend anpassen
   With .Range("G33")
     If .Value > 0 Then .Value = 0
   End With
 End With




Anstatt Tabelle 1 soll stehen: Kopie1,Kopie2,Kopie3......und das fortlaufend......
Notwendig, weil durch das Programm1 fortlaufend Kopien erstellt werden.

Hat einer eine Idee?

Gruss Markus
Antworten Top
#7
Hallo Markus,

vielleicht so:
Sub Kopie()
 On Error Resume Next
 'ActiveSheet.Copy after:=Worksheets(Worksheets.Count)

 ActiveSheet.Copy after:=Worksheets(Worksheets.Count)
 Sheets(Sheets.Count).Name = "Kopie" & Sheets.Count - 2
 With Worksheets("Kopie" & Sheets.Count - 3)
    Range("A45").Value = .Range("F45").Value
    Range("B28").Value = .Range("E28").Value
    Range("C8").Value = .Range("E28").Value
    If .Range("G38").Value > 0 Then
      Range("G33").Value = 0
    Else
      Range("G33").Value = .Range("G38").Value
    End If
 End With
 With ActiveSheet.Buttons.Add(868.5, 232.5, 76.5, 34.89428181135)
   .OnAction = "kopieren"
   .Characters.Text = "nach Spielabschnitt kopieren"
 End With
 Application.CutCopyMode = False
End Sub
Gruß Uwe
Antworten Top
#8
Danke Kuwer für deine Mühe,
zeigt dann leider eine Fehlermeldung an.
Ich probiere noch so ein bissel rum.
Danke nocmals fürs Programm!

Gruss u. schönen Abend noch!
Antworten Top
#9
Hallo Markus,

(11.06.2017, 17:57)Maximus schrieb: zeigt dann leider eine Fehlermeldung an.

bei mir läuft dieses Makro durch, selbst bei deaktiviertem On Error Resume Next. Huh

Gruß Uwe
Antworten Top
#10
hi,
kollidiert wohl mit einem zweiten Makro, weches sich auch in der Datei befindet.
Ich werde dieses Problem jetzt einer bedingten Formatierung lösen. Danke nochmal!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste