VBA – die besten Beiträge

Excel VBA eine definierte Shape bewegen?

Hallo Zusammen,

Ich habe in einem File mit zwei Blättern (Genehmigung und Planung) einen Balken (benannt "Datumsbalken"). Dieser ist jeweils auf dem heutigen Tag fixiert.

Jetzt will ich seine Verschiebung anhand des heutigen Datums automatisieren. Ich bringe jedoch das Makro nicht zum laufen. Was ist mein Fehler?

Sub BalkenSchieben3()
 
    Dim Today As Variant
    Dim Last As Variant
    Dim TodaySheet As Variant
    Dim Difference As Variant
    Dim Form As Shape
 
    Set Form = Sheets("Planung").Shapes.Range("Datumsbalken") '(Array("Datumsbalken")) soll die Shape "Datumsbalken" suchen
    Set Today = Date 'Setzt das heutige Datum
    Set Difference = Sheets("Genehmigung").Range("AO3") 'Setzt den Unterschied zwischen letzter Bearbeitung und Heute
    Set TodaySheet = Sheets("Genehmigung").Range("AK3")
    
        If Difference > 0 Then
            For Difference = 1 To Difference 'Die Anzahl Tagesunterschiede (Difference) entscheidet, wie viele Male der Balken verschoben werden soll.
                With Sheets("Planung")
                    Form.Select
                    Selection.ShapeRange.IncrementLeft 21
                End With
                
            Next
            
            Else
        End If
    
    Set Sheets("Genehmigung").Range("AK3") = Today 'Das heutige Datum wird in die Zelle abgespeichert
    Set Sheets("Genehmigung").Range("AM3") = TodaySheet 'Das letzte Bearbeitungsdatum (vorheriges "Heute") wird abgespeichert, damit die nächste Difference berechnet werden kann
 
End Sub

Vielen Dank im Voraus!

Microsoft Excel, Microsoft Office, programmieren, VBA, Formel

UserForm mit Prozentwerten in TextBox - Dilemma beim speichern in Zelle?

Liebe Excel-Fans,

ich habe ein Problem mit dem Thema Prozentangaben und versuche es so kurz wie möglich zu erklären:

Eine UserForm mit Feldern (TextBoxen) zum Bearbeiten von Werten aus einer Tabelle.
In der Excel-Tabelle sollen Prozentwerte hinterlegt und in die UserForm entsprechend ausgelesen werden.

  • Beim erstmaligen Hinterlegen kann man einfach TextBox1.Value / 100 verwenden. Klar.
  • Beim Einlesen des Wertes in die TextBox1 der UserForm zum Bearbeiten nehme ich: UserForm.TextBox1 = Format(UserForm.TextBox1, "#,##0.00 %") damit beim Lesen der Wert auch schön als Prozentwert angezeigt wird

Wenn ich nun speichere, ohne die Prozentwerte zu verändern, da ich diese einfach nicht verändern möchte, schmeißt mir Excel einen Laufzeitfehler 13, Typen unverträglich und markiert den Abschnitt im Code (oben Punkt 1) wo ich durch 100 dividiere.

Ist ja irgendwie verständlich, da er versucht den Wert aus der TextBox "1,99 %" zu dividieren, da nun ein "%" drin steht ... bzw. möchte ich in dem Fall auch gar nicht, dass durch 100 dividiert wird, da der Wert ja stimmt und nicht nochmal dividiert werden soll.

Habe irgendwie einen Denkfehler - aber ein Formular was "Bearbeiten" soll, muss die Werte richtig verändern können oder aber auch erstmals anlegen können. Und hier scheint es mit den Prozent-Werten ein Thema zu geben.

Ich danke für eure Ideen und Hilfsansätze!

Grüße
Sebastian

VBA, Excel-Formel

Meistgelesene Beiträge zum Thema VBA