Supportnet / Forum / Tabellenkalkulation
Excel Automatisch mit Werte auffüllen??!!
Frage
Ich hab da eine Frage: Ich habe eine Tabelle mit 8 Spalten und vielen Zeilen. Nun möchte ich dieer Tabelle "sagen", dass automatisch immer ein Feldinhalt die ganze (leere) Spalte herunter kopiert werde soll, solange bis er auf einen anderen Feldinalt stößt. Dann soll dieser das selbe tun...
Das ganze soll so in allen 8 Spalten passieren.
Wie kann ich in Excel so etwas realisieren? Da es sich immer um eine andere Tabelle gleichen Msuters handelt kann ich ja kein Amkro aufzeichnen! Wie kann ich diese Logik in VB reaisieren?
Vielen Dank für eure Hilfe!
Hans D
Antwort 1 von nighty
hi hans .-)
wie gewuenscht :-)
gruss nighty
einzufuegen
alt+f11/projektexplorer/allgemeines modul/f5 fuer start
wie gewuenscht :-)
gruss nighty
einzufuegen
alt+f11/projektexplorer/allgemeines modul/f5 fuer start
Option Explicit
Sub Auffuellen()
Call EventsOff
Dim puffer(8) As Variant
Dim zaehler0 As Long, zaehler1 As Integer, zeile As Long
rem naechste zeile wird spalte 9 abgetastet um ein ende zu ermitteln,waere anzupassen
zeile = ThisWorkbook.ActiveSheet.Cells(Rows.Count, 9).End(xlUp).Row
For zaehler0 = 2 To zeile
For zaehler1 = 1 To 8
If Cells(zaehler0, zaehler1) <> "" Then
puffer(zaehler1) = Cells(zaehler0, zaehler1)
Else
Cells(zaehler0, zaehler1) = puffer(zaehler1)
End If
Next zaehler1
Next zaehler0
Call EventsOn
End Sub
Public Sub EventsOff()
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
End Sub
Public Sub EventsOn()
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End SubAntwort 2 von HansD
nighty, du bist der Hammer!
copy paste --> perfekt! Sogar mit Aneitung!!!!!
Du hast mir echt den Tag ( Feierabend) gerettet!
Du suchst nich tzufällig einen Job ? ^^
Grüße
Hans
copy paste --> perfekt! Sogar mit Aneitung!!!!!
Du hast mir echt den Tag ( Feierabend) gerettet!
Du suchst nich tzufällig einen Job ? ^^
Grüße
Hans
Antwort 3 von HansD
oho! Nachtrag:!!
Ich hab leider etwas vergessen:
Nachtrag:
Der Feldinhalt soll nur dann runterkopiert werden, wenn sich keine Gefüllte zelle links von der zu füllenden Zelle befindet!
Wenn du mir das noch integrierst bist du mein persönlicher VB Excel- Held!!
Viele Grüße
Hans
Ich hab leider etwas vergessen:
Nachtrag:
Der Feldinhalt soll nur dann runterkopiert werden, wenn sich keine Gefüllte zelle links von der zu füllenden Zelle befindet!
Wenn du mir das noch integrierst bist du mein persönlicher VB Excel- Held!!
Viele Grüße
Hans
Antwort 4 von nighty
hi hans :-)
dann ist aber spalte a ausgeschlossen da es da kein links gibt :-))
gruss nighty
dann ist aber spalte a ausgeschlossen da es da kein links gibt :-))
gruss nighty
Option Explicit
Sub Auffuellen()
Call EventsOff
Dim puffer(8) As Variant
Dim zaehler0 As Long, zaehler1 As Integer, zeile As Long
Rem naechste zeile wird spalte 9 abgetastet um ein ende zu ermitteln,waere anzupassen
zeile = ThisWorkbook.ActiveSheet.Cells(Rows.Count, 9).End(xlUp).Row
For zaehler0 = 2 To zeile
For zaehler1 = 2 To 8
If Cells(zaehler0, zaehler1) <> "" Then
puffer(zaehler1) = Cells(zaehler0, zaehler1)
Else
If Cells(zaehler0, zaehler1 - 1) = "" Then Cells(zaehler0, zaehler1) = puffer(zaehler1)
End If
Next zaehler1
Next zaehler0
Call EventsOn
End SubPublic Sub EventsOff()
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
End SubPublic Sub EventsOn()
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End SubAntwort 5 von nighty
hi hans :-)
da beisst sich aber der wolf selbst in *Z* :-))
spalte a ausgeschlossen da es kein links gibt
b wird befuellt
c wird ausgelassen da b befuellt ist
d wird befuellt
e wird ausgeschlossen da d befuellt ist usw.
gruss nighty
da beisst sich aber der wolf selbst in *Z* :-))
spalte a ausgeschlossen da es kein links gibt
b wird befuellt
c wird ausgelassen da b befuellt ist
d wird befuellt
e wird ausgeschlossen da d befuellt ist usw.
gruss nighty
Antwort 6 von HansD
mmmm du hat recht! irgendie haperts an meiner Logik...
Ich schildere dir das Problem jetzt einfach mal direkt:
Ich hab eine Excel Tabelle, die hat so eine "Stufenform"
Abteilung
U1
.........U11...........676
.........U12...........678
U2
.........U21
................U211...787
Das liegt daran, dass das eine Hirarchie aus einem Programm ist. Da das Excel File riesig ist, und es von den Excel Files viele gibt, muss es automatisiert so aus sehen:
1. Abteilung
2. U1
3. U11 | 676
3. U12 | 678
2.U2
3. U21
4. U211 | 787
Fest ist, dass diese Nr, die immer die "Info" von so einer Strukur ist in Spalte O steht, ansonsten ist die Struktur unterschiedlich "tief"
So kam auch meine Frage zu stande, ich wollte durch das füllen Datensätze erhalten, die in Access zu einem Bericht machen kann.. nur das Problem ist das mit dem Wechsel in der Hirarchie, somit sollte immer wenn in Zeile O etwas steht das "füllen unterbrochen werden, und dann die Hirarchie sich wieder von vorne füllen.. ist das verständlich so???
Ich hoffe man kann es Nachvollziehen!!
Grüße
hans
Ich schildere dir das Problem jetzt einfach mal direkt:
Ich hab eine Excel Tabelle, die hat so eine "Stufenform"
Abteilung
U1
.........U11...........676
.........U12...........678
U2
.........U21
................U211...787
Das liegt daran, dass das eine Hirarchie aus einem Programm ist. Da das Excel File riesig ist, und es von den Excel Files viele gibt, muss es automatisiert so aus sehen:
1. Abteilung
2. U1
3. U11 | 676
3. U12 | 678
2.U2
3. U21
4. U211 | 787
Fest ist, dass diese Nr, die immer die "Info" von so einer Strukur ist in Spalte O steht, ansonsten ist die Struktur unterschiedlich "tief"
So kam auch meine Frage zu stande, ich wollte durch das füllen Datensätze erhalten, die in Access zu einem Bericht machen kann.. nur das Problem ist das mit dem Wechsel in der Hirarchie, somit sollte immer wenn in Zeile O etwas steht das "füllen unterbrochen werden, und dann die Hirarchie sich wieder von vorne füllen.. ist das verständlich so???
Ich hoffe man kann es Nachvollziehen!!
Grüße
hans
Antwort 7 von HansD
habs gelöst!
Danke für die Tipps!
For zaehler0 = 2 To zeile
For zaehler1 = 1 To 13
If Cells(zaehler0, zaehler1) <> "" Then
Cells(zaehler0, 1) = zaehler1 & ". " & Cells(zaehler0, zaehler1)
Cells(zaehler0, 2) = Cells(zaehler0, 14)
Else
End If
Next zaehler1
Next zaehler0Danke für die Tipps!
Antwort 8 von nighty
hi hans :-)
prima :-)) du wirst noch ein excelspezialist :-))
gruss nighty
prima :-)) du wirst noch ein excelspezialist :-))
gruss nighty

