Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
616to620
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
616to620
616to620
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellen nach unten kopieren

Zellen nach unten kopieren
31.05.2005 20:31:31
Michi
Hallo Excelperten,
ich habe ein Tabellenblatt mit etwa 200 benutzten Spalten. In etwa 100 davon werden aus einer anderen Datei über VBA Daten eingelesen, ein Datensatz pro Zeile. Die Anzahl der Datensätze ist aber variabel. Die anderen Spalten enthalten Formeln, die mit den eingelesenen Daten weiterrechnen. Die eingelesenen Spalten und die mit Formeln sind aber ohne nutzbare Systematik über das Blatt verteilt (es ist also nicht z.B. jede 2te eine mit Formel).
Ich möchte nach Einlesen der Daten nun die Formeln entsprechend der Anzahl der Datensätze mit VBA runterkopieren. Wie kann ich aber elegant die betreffenden Spalten auswählen?
Die Formeln vor dem Einlesen runterkopieren geht nicht, da später weitere Datensätze dazukommen können.
Danke Euch, Michi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen nach unten kopieren
01.06.2005 08:03:42
bst
Morgen Michi,
wenn in Spalte A immer Daten sind, versuch mal sowas.
cu, Bernd
--
Option Explicit

Sub Fuellen()
Dim i As Integer
Dim LastLine As Long, FirstLastLine As Long
FirstLastLine = GetLastRow()
For i = 2 To GetLastColumn()
LastLine = GetLastRow(i)
If LastLine < FirstLastLine And Cells(LastLine, i).HasFormula Then
Range(Cells(LastLine, i), Cells(FirstLastLine, i)).FillDown
End If
Next
End Sub


Function GetLastRow(Optional spalte As Integer = 1) As Long
GetLastRow = Rows.Count
If Cells(GetLastRow, spalte).Value = "" Then GetLastRow = Cells(GetLastRow, spalte).End(xlUp).Row
End Function


Function GetLastColumn(Optional zeile As Long = 1) As Integer
GetLastColumn = Columns.Count
If Cells(zeile, GetLastColumn).Value = "" Then GetLastColumn = Cells(zeile, GetLastColumn).End(xlToLeft).Column
End Function

Anzeige
AW: Zellen nach unten kopieren
01.06.2005 09:39:36
Michi
Hallo Bernd,
danke.
Was ich nicht verstehe: warum prüfst Du denn in den Functions zuerst z.B. mit
If Cells(zeile, GetLastColumn).Value = ""
wieso kann man nicht gleich
GetLastColumn = Cells(zeile, GetLastColumn).End(xlToLeft).Column
setzen?
Gruß, Michi
AW: Zellen nach unten kopieren
01.06.2005 09:53:25
bst
Hi Michi,
falls in der letzten Spalte was drinnen steht, liefert
GetLastColumn = Cells(zeile, Columns.count).End(xlToLeft).Column
ein falsches Ergebnis.
cu, Bernd
AW: Zellen nach unten kopieren
01.06.2005 11:47:21
Michi
Hallo Bernd,
danke! Was ich noch nicht verstehe, warum Du in den Functions zuerst abprüfts mit If Cells(GetLastRow, spalte).Value = "". Warum kann man denn nicht gleich GetLastRow = Cells(GetLastRow, spalte).End(xlUp).Row setzen?
Gruß, Michi
Anzeige
AW: Zellen nach unten kopieren
01.06.2005 12:00:49
bst
Hi again,
aus dem gleichen Grund ;-)
wenn in der letzten Zeile in der übergebenen Spalte was steht liefert
Cells(rows.count, spalte).End(xlUp).Row
ebenfalls was Falsches.
cu, Bernd

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige