Excel97 - Makro

Hallo,
ich habe eine Excel-Tabelle mit ca. 3500 Zeilen. Jetzt will ich in Spalte F jeweils eine „1“ (ohne Anführungszeichen) eintragen. Ich habe mir bis jetzt so geholfen, dass ich in Spalte F (1.Zeile) eine 1 eingetragen habe, habe sie kopiert und dann in die markierte Spalte F eingefügt. Dann steht aber die 1 in 65000 Zeilen. Lieber wäre es mir, wenn die 1 nur bis zu der Zeile eingefügt wird, in welcher auch etwas in der Spalte A steht. Mit welchem Markro kann ich das realisieren. Über Hilfe würde ich mich sehr freuen.
Grüße von
Klaus

wozu Makro?
das brauchts an der Stelle wohl nicht - ausser Du willst es später aktualisieren…

Schneller geht es wenn Du in F1 deine 1 einträgst, die Zelle kopierst (STRG+C), dann nach A1 wanderst, STRG und Pfeil nach unten drückst, wieder nach F in der gleichen Zeile wanderst, STRG, SHIFT und Pfeil nach oben drückst und dann mit Enter oder STG+v einfügst.

Wenn Du trotzdem noch das Makro brauchst…

Sub Makro()
 check = 0
 While check = 0
 i = i + 1
 inhalt = Range("A1").Offset(i - 1, 0).Value
 If inhalt = "" Then
 check = 0
 Else
 Range("F1").Offset(i - 1, 0).Value = 1
 End If

 check = 1
 Wend
End Sub

Hallo,
danke für die schnelle Antwort. Ich habe das Makro ausprobiert. Die „1“
steht aber nur in der Spalte F in der ersten Zeile. Ich brauche aber die 1 auch in den rund 3500 Zeilen (also so lange wie in Spalte A ein Eintrag ist.
Gruß Klaus

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

das makro macht genau das - aber vielleicht hast Du ja eine leere zelle in A2…

Hallo,
also Excel kann, wenn in der Nachbarspalte auch alles ausgefüllt ist, die Spalte automatisch ausfüllen. Also wäre mein Vorschlag, eine Spalte nach A einzufügen, in der ersten Zeile eine 1 einzutragen. Dann einfach in dieser Zelle unten rechts (dann wenn der Cursor ein Kreuz wird) doppeltzuklicken. Funzt bei mir mit Excel 2000. Anschließend die eingefügte Spalte wieder an die gewünschte Stelle kopieren.

Probier es mal aus.

Andreas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,
nein, in der Spalte A kommt erst nach rund 3600 Zeilen eine leere Zelle. Ich habe es jetzt auch noch auf XP probiert. Aber immer das gleiche Resultat. Nur in der ersten Zeile der Spalte F wird eine 1 eingesetzt. Alle anderen Zellen dieser Spalte bleiben ohne Eintrag.
Ich hatte schon den ersten Vorschlag ausprobiert, aber da die Zeilenanzahl sich ständig vergrößert, lässt sich nur ein Makro einsetzen. Bitte noch einmal prüfen. Ich habe das Makro unverändert übernommen. Danke.
Gruß Klaus

das makro macht genau das - aber vielleicht hast Du ja eine
leere zelle in A2…

Hallo, Klaus!

ich habe eine Excel-Tabelle mit ca. 3500 Zeilen. Jetzt will
ich in Spalte F jeweils eine „1“ (ohne Anführungszeichen)
eintragen… Lieber wäre es mir, wenn die 1 nur bis
zu der Zeile eingefügt wird, in welcher auch etwas in der
Spalte A steht. Mit welchem Markro kann ich das realisieren.

sub Auffuellen()
 const ZIELSPALTE as long = 6 ' Spalte F
 const DATENSPALTE as long = 1 ' Spalte A
 const DEIN\_WERT as long = 1 ' oder anderer Typ; das für Spalte F
 const MAX\_LEER as long=20 ' Abbruch nach wieviel Leerzeilen?
 dim lngZeile as long
 dim lngLeer as long

 lngZeile = 1
 lngLeer = 0
 Do While lngLeer Wie immer ungetestet/uncompiliert.

Gruß, Manfred

Hallo Manfred,
ich habe Dein Makro so übernommen und wie vorgegeben, habe meine Tabelle die vorher NKD hieß in Tabelle1 umbenannt, aber es kam keine einzige 1 in die Spalte F. Auch dann nicht wenn ich vorher die Tabelle aktiviere. Ich habe auch probiert im Makro
von Tabelle1.Cells in NKD.Cells zu ändern, was aber gar nicht
angekommen ist. Kann ich sonst noch was falsch machen?
Gruß Klaus

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo, Klaus!

Kann ich sonst noch was falsch machen?

Nö, aber ich. Hab’s gerade mal ausprobiert. Machen wir’s so:

sub Auffuellen()
 const ZIELSPALTE as long = 6 ' Spalte F
 const DATENSPALTE as long = 1 ' Spalte A
 const DEIN\_WERT as long = 1 ' oder anderer Typ; das für Spalte F
 const MAX\_LEER as long=20 ' Abbruch nach wieviel Leerzeilen?
 dim lngZeile as long
 dim lngLeer as long

 lngZeile = 1
 lngLeer = 0
 Do While lngLeer APLTE
 endif
 lngZeile = lngZeile + 1
 loop
end sub

Wie immer ungetestet/uncompiliert.
Der Buchstabendreher hätte beim Compilieren auffallen müssen…

Kann sein, dass das bei Dir nicht die erste Tabelle ist, in der Du die 1 rein haben willst? Schau mal in die erste Tabelle… Tabelle1 oder NKD sind nicht die Namen, wie sie unten in der Mappe stehen, sondern VBA-Objektnamen. Die findest Du im Objektexplorer. Mit Worksheets(„Tabellenname“) verweist Du dagegen auf die entsprechend benannten Tabellen.

Wenn das Makro drin ist, natürlich noch aufrufen. Dann sollte es passen.

Gruß, Manfred

Hallo, Manafred,
wunderbar. Es geht. Da freue ich mich aber. Vielen, vielen Dank.
Auch den anderen Helfern ein Dankeschön.
Schönes Wochenende.
Gruß Klaus

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]