Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Per Button Wert in Zellen schreiben?

Per Button Wert in Zellen schreiben?
12.11.2007 22:16:00
Peter
Hallo liebe Excellaner,
kann mir jemand beistehen und sagen, warum der nachfolgende Code nicht den gewünschten Erfolg bringt?
Private Sub CommandButton19_Click()
Sheets("WKKlasseBeginner").Activate
Dim c As Variant
For c = 85 To 16
If ActiveSheet.Cells(c, 1) "" Then
ActiveSheet.Cells(c, 42) = 10
End If
Next c
Vielen Dank
Peter S.

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per Button Wert in Zellen schreiben?
12.11.2007 22:25:00
Hajo_Zi
Hallo Peter,
welchen Erfolg erwartest Du?
Hast Du die Eigenschaft TakeFocusOnClick geändert?
Es fehlt End Sub
Auf Select usw. kann in VBA zu 99,9% verzichtet werden.

AW: Per Button Wert in Zellen schreiben?
12.11.2007 22:30:52
Peter
Hallo Hajo,
der Erfolg sollte sein, dass ich mit einem Klick auf den Button in der Tabelle WKKlasseBeginner
in den Zeilen 16 bis 86 in der Spalte 42 den Wert 10 eintrage, vorausgesetzt der Wert in der Spalte 1 der entsprechenden Zeile ist größer 1.
Die Eigenschaft steht auf True
Gruß
Peter S.

Anzeige
AW: Per Button Wert in Zellen schreiben?
12.11.2007 22:32:00
Hajo_Zi
Hallo Peter,
ob True habe ich nicht gefragt, ob Du Sie geändert hast?
Den Hinweis mit Select ast Du schon umgesetzt? Dann gibt es das Problem nicht.
Gruß Hajo

AW: Per Button Wert in Zellen schreiben?
12.11.2007 22:39:00
Peter
Hallo Hajo,
nein ich habe die Eigenschaft von TakeFocusOnClick nicht geändert und ja die .Select_Zeile habe ich per ' deaktiviert
Gruß
Peter S.

Anzeige
AW: Per Button Wert in Zellen schreiben?
12.11.2007 22:45:00
Hajo_Zi
Hallo Peter,
"die .Select_Zeile habe ich per ' deaktiviert" den nachfolgenden Code hast Du dann auch umgeschrieben?
Warum setzt Du meinen Vorschlag aus dem ersten Beitrag nicht um und ändest die Eignschaft von TakeFocusOnClick?
Gruß Hajo

Anzeige
AW: Per Button Wert in Zellen schreiben?
12.11.2007 22:57:00
Peter
Hallo Hajo,
habe die Eigenschaft geändert. Trotzdem keine 10 in den entsprechenden Zellen.
Aber vielleicht habe ich eine wichtige Tatsache vergessen; der Button ist auf einer UserForm, nicht in der Tabelle. Das End Sub ist natürlich vorhanden
Gruß
Peter S.

AW: Per Button Wert in Zellen schreiben?
12.11.2007 23:01:00
Hajo_Zi
Hallo Peter,
ich baue das nicht nach, da ein Nachbau meist anders aussieht als das Original. Man sollte im ersten Beitrag schon alles reölevaze erwähnen. Ich mache jetzt Feierabend.
Gruß Hajo

Anzeige
AW: Per Button Wert in Zellen schreiben?
12.11.2007 23:05:46
Peter
Hallo Hajo,
danke trotzdem und gute Nacht
Gruß
Peter S.

AW: Per Button Wert in Zellen schreiben?
12.11.2007 23:14:04
Daniel
Hi
schwer zu sagen, so ohne die Datei drumherum
probier mal das hier, das sollte eigentlich funktionieren, vorrausgesetzt, du hast dich beim Blattnamen nicht verschrieben.

Private Sub CommandButton19_Click()
Dim c As long
with Sheets("WKKlasseBeginner")
For c = 85 To 16
If .Cells(c, 1)  "" Then
.Cells(c, 42) = 10
End If
Next c
end with
End Sub


ne schnellere Möglichkeit ist auf jeden fall das hier:


Private Sub CommandButton19_Click()
with Sheets("WKKlasseBeginner").range("AP16:AP85")
.formular1c1 = "=if(rc1"""",10,"""")
.formula = .value
end with
End Sub


Gruß, Daniel

Anzeige
AW: Per Button Wert in Zellen schreiben?
13.11.2007 19:51:20
Peter
Hallo Daniel,
vielen Dank für Deine späte (Uhrzeit) Hilfe. Deine beiden Codes funktionieren bestens, der erste davon jedoch nur dann, wenn es heisst "for c = 16 to 85", die Reihenfolge von unten nach oben funktioniert nicht.
Die Geschwindigkeit beider Lösungen ist in der Praxis nicht voneinander zu unterscheiden; sicherlich hast Du in der Theorie Recht, denn das einmalige Schreiben einer Formel in einen Zellbereich ist bestimmt schneller, als 85 mal eine Sequenz zu wiederholen.
Noch Offen nur damit Du meine Antwort auch angezeigt bekommst.
Super Hilfe
Vielen Dank
Peter S.

Anzeige
AW: Per Button Wert in Zellen schreiben?
13.11.2007 22:43:19
Daniel
Hi
ja danke für die Rückmeldung.
jetzt sehe ich auch, warum deine Schleife nicht funktioniert:
Probier mal

For c = 85 to 16 Step -1


damit sollte es gehen.
Was die Geschwindigkeit angeht: bei 70 Zellen spielt das noch keine Rolle, aber wenns mal 1000 oder mehr Zellen werden, machen sich die Unterschiede im Code schon bemerkbar.
Gruß, Daniel

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Werte per Button in Excel-Zellen eintragen


Schritt-für-Schritt-Anleitung

Um mit einem Button in Excel Werte in Zellen zu schreiben, gehe wie folgt vor:

  1. Öffne die Excel-Datei und gehe zur entsprechenden UserForm, in der sich der Button befindet.

  2. Füge den folgenden VBA-Code in den Code-Editor der UserForm ein:

    Private Sub CommandButton19_Click()
        Dim c As Long
        With Sheets("WKKlasseBeginner")
            For c = 16 To 85
                If .Cells(c, 1) <> "" Then
                    .Cells(c, 42) = 10
                End If
            Next c
        End With
    End Sub
  3. Stelle sicher, dass die Eigenschaft TakeFocusOnClick des Buttons auf False gesetzt ist, um sicherzustellen, dass der Fokus nicht auf den Button wechselt.

  4. Teste den Button, indem Du auf ihn klickst; der Wert 10 sollte in den Zellen der Spalte 42 (AP) eingetragen werden, wenn die Bedingungen erfüllt sind.


Häufige Fehler und Lösungen

  1. Code funktioniert nicht: Überprüfe, ob das End Sub am Ende des Codes vorhanden ist. Ein fehlendes End Sub kann zu Fehlermeldungen führen.
  2. Falsche Zellen adressiert: Vergewissere Dich, dass die Schleife von 16 bis 85 korrekt ist. Eine Schleife von 85 bis 16 führt nicht zum gewünschten Ergebnis.
  3. Button auf einer UserForm: Wenn der Button sich auf einer UserForm befindet, stelle sicher, dass der richtige Worksheet-Name angegeben ist.

Alternative Methoden

  1. Formeln direkt in den Zellbereich schreiben: Du kannst auch Formeln verwenden, um Werte in einen Bereich zu schreiben. Hier ein Beispiel:

    Private Sub CommandButton19_Click()
        With Sheets("WKKlasseBeginner").Range("AP16:AP85")
            .FormulaR1C1 = "=IF(RC1<>"""",10,"""")"
            .Value = .Value
        End With
    End Sub
  2. Schleife mit Step-Anweisung: Wenn Du möchtest, dass die Schleife rückwärts läuft, kannst Du die Step-Anweisung verwenden:

    For c = 85 To 16 Step -1

Praktische Beispiele

  • Beispiel für das Schreiben eines Wertes in benachbarte Zellen:

    Private Sub CommandButton19_Click()
        Dim c As Long
        With Sheets("WKKlasseBeginner")
            For c = 16 To 85
                If .Cells(c, 1) > 1 Then
                    .Cells(c, 42) = 10
                End If
            Next c
        End With
    End Sub

In diesem Beispiel wird der Wert 10 nur eingetragen, wenn der Wert in der Spalte 1 größer als 1 ist.


Tipps für Profis

  • Verwende With-Anweisungen: Dadurch wird der Code effizienter und leichter lesbar.
  • Vermeide .Select: Das Auslassen von .Select kann den Code beschleunigen und die Wahrscheinlichkeit von Fehlern verringern.
  • Testen in einer Kopie der Datei: Teste Änderungen immer in einer Kopie Deiner Arbeitsmappe, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Warum funktioniert mein VBA-Code nicht?
Überprüfe, ob alle notwendigen Eigenschaften korrekt gesetzt sind und ob der Code im richtigen Modul eingefügt wurde.

2. Wie kann ich sicherstellen, dass der Button funktioniert?
Teste den Button in einer leeren UserForm, um sicherzustellen, dass keine anderen Code-Elemente stören.

3. Was ist der Unterschied zwischen FormulaR1C1 und Formula?
FormulaR1C1 verwendet eine andere Notation zur Adressierung von Zellen, die sich besser für dynamische Formeln eignet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige