Microsoft Excel – die besten Beiträge

Exel VBA Berechnung im Userform/Textfeld?

Hallo

Heute habe ich mal wieder Zeit mich mit Excel / VBA zu beschäftigen. Und komme leider nicht wirklich weiter

Kurze Erläuterung:

Ich kann per DropDawn Liste in einem Userform, Daten aus einer Tabelle integrieren. Beispiel: Nahrungsmittel1 auf 100g mit jeweils 10g Eiweiß, 18g Kohlenhydrate usw. werden in Userform/Textfelder eingetragen

Jetzt möchte ich, wenn ich im Userform die Menge z.B. auf 200g ändere, dass die Zahlenwerte für Kohlenhydrate, Eiweiß etc. automatisch aktualisiert werden.

Code zuzeit
Private Sub txtMenge1_Change() 
    If CDbl(txtMenge1) <> 100 Then
               txtKohlenhydrate1.Value = CDbl(txtKohlenhydrate1) * CDbl(txtMenge1) / 100
        End If
    End Sub
Problem ist jetzt folgendes

Er aktualisiert zwar z.B. im Textfeld Kohlenhydrate was sobald eine Eingabe erfolgt, rechnet aber nicht mit dem Ursprungswert von zb. 10g oder 18g. Sobald ich anfange die Zahl in Menge auf 200g zu ändern passiert jetzt folgendes. Wenn ich jetzt anfange die Zahl auf 2 ändere, stimmt das Ergebnis noch. Möchte ich aber jetzt eine 0 hinzufügen, geht er nicht mehr von 10g bzw 18g aus, sondern von denm Wert der bei einer 2 berechnet wurde. Somit stimmt das Ergebnis nicht mehr. Bei 2 kommen bei 10g ja erst mal 0.2g aus, füge jetzt jetzt aber ne 0 hinzu, sollen eigentlich 2 rauskommen. Es kommt dann aber 0,04 raus.

Da ich in VBA noch Neuling bin,möchte ich bitten mir das verständlich zu erklären. Danke im Vorraus

Microsoft Excel, VBA

Registerfarbe aufgrund von Zellwert einfärben (Excel)?

Ich arbeite grade für eine Kollegin an einer Excel-Tabelle (Excel 2010). Sie wünscht sich nun, dass sich unter einer bestimmten Bedingung die Farben der Registerblätter automatisch ändern. Ich habe dafür die gesamte Tabelle schon soweit vorbereitet, dass eine Formel mir bereits die entsprechende Bedingung ausliest und ausgibt.

Ich gehe dabei jetzt mal ins Detail: In allen Tabellenblätter gibt das Feld J19 mir einen Wert, der entweder =0 oder >0 ist. Bei =0 soll sich der Registername rot färben, bei >0 grün.

Natürlich habe ich Google dazu schon befragt, und mir ist mittlerweile klar, dass sich das mithilfe eines Makros machen ließe. Allerdings liegt genau hier das Problem: Ich habe noch nie mit Makros gearbeitet, schon gar nicht welche geschrieben. Ich weiß mittlerweile wie ich auf die Entwicklertools komme, und wie ich das "Makros"-Fenster öffne. Allerdings habe ich auch nach mehreren (Copy&Paste aus dem Netz) Versuchen es nicht geschafft, dass mir in dem entsprechenden Dialog ein Makro zum Ausführen angezeigt wurde.

Ich bräuchte also eine genaue Anleitung, wo ich was eintragen muss. Ich habe die Tabelle extra so gestaltet, dass der Wert mir in jedem Tabellenblatt im selben Feld ausgegeben wird.

Was ich bislang nicht rausgefunden habe: Läuft das Makro immer automatisch? Oder muss man es immer wieder neu aktivieren? Das wäre nämlich kontraproduktiv, denn die Tabelle soll weitergegeben werden und das Einfärben der Register soll eine "Kontrollfunktion für Dummies" darstelen. Wenn es also jedes Mal aktiviert werden muss, wäre es sinnlos.

Ich hoffe sehr, dass mir jemand helfen kann.

Vielen Dank im Voraus!

Microsoft Excel, Makro, Funktion

Meistgelesene Beiträge zum Thema Microsoft Excel