Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1360to1364
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

Makro Zellinhalt dynmisch überschreiben

Makro Zellinhalt dynmisch überschreiben
22.05.2014 14:55:37
Nitram
Hi Spezialisten,
bin etwas unbeleckt was VBA angeht und hoffe auf eure Hilfe.
Hatte heute morgen hier das Thema:
MAKRO Drehfelder "aktueller Wert" Nullen erstellt.
Da es noch keine Antwort gibt und ich seit Tagen schon das Internet durchforste, kam mir vorhin eine kleine, aber doch gewinnversprechende Idee.
Ich möchte in meinem Sheet "Zubehör" von Zelle H4 bis H...(Ende der formatierten Tabelle, sollte dynamisch sein, falls die Tabelle sich weiter füllt) den aktuellen Inhalt dieser Zellen (der Inhalt stammt aus der Zellverknüpfung von Formularsteuerelementen Drehfeld im Sheet "Auswahl" mit einer einfachen 0 überschreiben.
Dadurch wird in dem Drehfeldern der interne, "aktuelle Wert" auch auf Null gesetzt.
Das ist quasi der Rückwärtsweg.
Wenn das von Zubehör!H4 bis Zubehör!H...Tabellenende funktioniert, möchte ich dieses Makro (Überschreiben mit Null) mit einem Button auf dem Sheet "Auswahl" verknüpfen um dadurch dann alle Drehfelder intern auf den Wert Null zu setzen.
Mein sicherlich mikriger Quellcode sieht bisher folgendermaßen aus:
Sub Ueberschreibe_Zellinhalt_H4bisH207()
'Kommentar
Dim intI As Integer
For intI = 1 To 207
Range("H4").Value = 0
Next
End Sub
H4 wird auch genullt, mehr aber auch nicht.
Bitte um Hilfe ;-)

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Zellinhalt dynmisch überschreiben
22.05.2014 15:07:37
kimbo
Hallo Nitram,
in dem Makro hast du ja auch nur H4 zum nullen angegeben.
Sub Ueberschreibe_Zellinhalt_H4bisH207()
lstrow = Sheets("Zubehör").Cells(Rows.Count, 8).End(xlUp).Offset(0, 0).Row
'Kommentar
Dim intI As Integer
For intI = 1 To 207
For n = 4 to lstrow
Cells(n,8).Value = 0
Next n
Next
End Sub
Gruß
kimbo

AW: Makro Zellinhalt dynmisch überschreiben
22.05.2014 15:10:38
Pepi
Hallo ?
meinst Du so was?
Sub Ueberschreibe_Zellinhalt_H4bisH207()
'Kommentar
iZeiAnz = UsedRange.Row
For intI = 1 To iZeiAnz
Range("H" & cstr(intI)).Value = 0
Next
End Sub

gruss Pepi

Anzeige
AW: Makro Zellinhalt dynmisch überschreiben
22.05.2014 15:20:55
Nitram
Hey danke erstmal, Pepi deine Variante bringe mir Laufzeitfehler 424 Objekt erwartet. Hatte bei dir noch
Dim intI as Integer eingefügt, aber brachte keine Abhilfe

AW: Makro Zellinhalt dynmisch überschreiben
22.05.2014 15:30:29
Nitram
Kimbo deine Variante funktioniert soweit ich das einschätzen kann.
Würdest du so freundlich sein und mir erklären,was die Zeile
lstrow = Sheets("Zubehör").Cells(Rows.Count, 8).End(xlUp).Offset(0, 0).Row
im einzelnen macht?
Und wenn bei dir:
For n = 4 to lstrow
Cells(n,8).Value = 0
Next n

steht, heißt dann Cells(n,8) das n die Zählvariable der zweiten Schleife ist und die 8? Was macht die 8.
Ich möchte das wissen, weil ich in VBA besser werden will.
Vielen Dank erstmal an euch beide für die Mühe

Anzeige
AW: Makro Zellinhalt dynmisch überschreiben
22.05.2014 15:42:13
kimbo

lstrow = Sheets("Zubehör").Cells(Rows.Count, 8).End(xlUp).Offset(0, 0).Row

Sheets("Zubehör") - sagt aus welches Tabellenblatt gemeint ist
Cells(Rows.Count,8) - gibt eine Zelle an, wobei der erste Wert die Zeile (als Nummer) und die Spalte (ebenfalls als Nummer!) darstellt. // Rows.Count zählt die Zeilen
End(x1Up) - sagt ".End" weisst EXCEL an, dass es dort beginnen soll zu zählen xlUp gibt die Richtung an
Offset(Zeile,Spalte) - mit Offset kannst du von der gefunden letzten Zeile, wenn man z.B. Offset(1,0) schreibt, eine Zeile nach unten gehen. also das man quasi die letzte benutze Zeile sucht und dann noch eine runter geht.
Wegen der Schleife:
Ja, eine Schleife kannst du gut dazu gebrauchen um ganze Reihen oder Spalten zu füllen.
For n = 4 to lstrow
Er Soll in Zeile 4 anfangen und bis zur "lstrow" letzten Zeile laufen.
Cells(n,8).Value = 0
Cells ist wie oben beschrieben - Cells(Zeile,Spalte) , hierbei ist die Spalte 8 = H... lässt sich ja im Alphabet durchzählen ;)
Hoffe das war einigermaßen verständlich, falls nicht ruhig fragen, dann versuch ich es nochmal anders.
Gruß
kimbo

Anzeige
AW: Makro Zellinhalt dynmisch überschreiben
22.05.2014 15:50:15
Nitram
das ist top erklärt.
Danke dir vielmals!

Nein ist es mitnichten...
22.05.2014 16:04:18
EtoPHG
Nitram,
@Kimbo:
1. Offset(0,0) ist ein so nötig wie ein Kropf!
2. Glaubst du wirklich, dass 207 x den gleichen Bereich zu "nullen", mehr bringt als nur 1 mal
3. Jede Zelle einzeln anzusprechen ist bedeutend langsamer, als einen ganzen Bereich auf einmal. Dazu brauchts also auch keine Schleife....
Also Vorschlag:
Option Explicit
Sub SpalteH_Nullen()
With ThisWorkbook.Worksheets("Zubehör")
.Range(.Cells(4, 8), .Cells(.Rows.Count, 8).End(xlUp)) = 0
End With
End Sub
Gruess Hansueli

Anzeige
AW: Nein ist es mitnichten...
22.05.2014 16:18:31
Nitram
Hi Hansueli, ich habe deine Variante jetzt mal probiert und was soll ich sagen. Geht deutlich schneller.
Danke an euch, echt toll hir Hilfe zu bekommen.

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige