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

Zellen

Zellen
17.01.2005 22:50:12
Robag
Hallo liebe Experten,
ich habe folgendes Problem:
Ab Zelle C6 stehen nach unten fortlaufend Zahlen (zB. C6 = 8, C7 = 5, C8 = 9)
die Anzahl nach unten ist variabel. Jetz soll wenn in C6 = 8 steht in die erste leere Zelle der Spalte A (Beginn = A6) eine 1, in die Zelle darunter eine 2 usw bis zum Wert in C6 geschrieben werden. Das selbe soll mit den C7, C8 bis zur letzten Eingabe in C fortgeführt werden. Ausserdem soll der Inhalt von B6 in die Zelle Bx neben der ersten 1 bis zur Zahl aus C6 kopiert werden, der Inhalt von B7 neben die Zelle mit der zweiten 1 bis zur Zahl aus C7 usw.
Ich denke man kann das nur mit einer Schleife lösen, da habe ich aber keine Ahnung.
Ich hoffe ich habe mich halbwegs verständlich ausgedrückt.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen
PeterW
Hallo (Realnamen sind hier üblich),
was du planst lässt sich so wie beschrieben nicht umsetzen. Annahme in C5 steht 6, in A6 wird begonnen, B6 ist der Wert, der nach B6 soll. Das geht noch, aber bei der 2 würde dann B7 überschrieben.
Ohne diese Geschichte sähe der Code so aus:

Sub Robag()
Dim lgZiel As Long
Dim lgQuell As Long
Dim iCount As Integer
lgZiel = Cells(Rows.Count, 1).End(xlUp).Row + 1
If lgZiel < 6 Then lgZiel = 6
For lgQuell = 6 To Cells(Rows.Count, 3).End(xlUp).Row
For iCount = 1 To Cells(lgQuell, 3)
Cells(lgZiel, 2) = Cells(lgQuell, 2)
lgZiel = lgZiel + 1
Next
Next
End Sub

Gruß
Peter
Anzeige
AW: Zellen
17.01.2005 23:44:38
Josef
Hallo ? (realnames sind hier üblich und erwünscht!)
Der Code Startet ab Zeile 10, weil in B6-B8 ja die Zahlen
stehen die in Spalte "B" eingetragen werden sollen!


      
Option Explicit
Sub Zahlen()
Dim i As Integer
Dim n As Integer
Dim lRow As Long
lRow = 10   
'Startzeile!

With Sheets("Tabelle3"'Tabellenname anpassen!

.Range(
"A10:B65536").ClearContents
   
For n = 6 To 8
      
For i = 1 To .Cells(n, 3)
         .Cells(lRow, 1) = i
         .Cells(lRow, 2) = .Cells(n, 2)
         lRow = lRow + 1
      
Next
   
Next
End With
End Sub 


Gruß Sepp
Anzeige
AW: Zellen
18.01.2005 00:08:23
Gabor
Ich bin begeistert.
Ist es möglich das die Daten nicht in die fest angegebene Zelle A10 sondern in die erste freie Zelle der Spalte A geschrieben werden.
Immer wenn ein Wert in C steht, steht auch automatisch einer in A (selbe Zeile).
AW: Zellen
18.01.2005 00:14:11
Josef
Hallo Gabor!
Dann so:


      
Option Explicit
Sub Zahlen()
Dim i As Integer
Dim n As Integer
Dim lastRow As Long
With Sheets("Tabelle3"'Tabellenname anpassen!

lastRow = IIf(.Range(
"A65536") <> "", 65536, .Range("A65536").End(xlUp).Row)
If lastRow < 10 Then lastRow = 10
   
If lastRow + Application.Sum(.Range("C6:C8")) > 65536 Then
      MsgBox 
"Kein Platz mehr!"
      
Exit Sub
   
End If
   
For n = 6 To 8
      
For i = 1 To .Cells(n, 3)
         .Cells(lastRow, 1) = i
         .Cells(lastRow, 2) = .Cells(n, 2)
         lastRow = lastRow + 1
      
Next
   
Next
End With
End Sub 


Gruß Sepp
Anzeige
AW: Zellen
18.01.2005 00:29:13
Robag
Danke Sepp,
eins noch, die Daten in B und C sind nach unten flexibel, es darf also nicht
Range("C6:C8") stehen sondern muss den Bereich bis zum letzten Wert in C einbeziehen.
Das Makro von Peter hatte schon diesen Ansatz - in deinem war noch die Zählung vorhanden, deshalb hatte ich mich für deinen Weg entschieden.
Danke für Eure Bemühungen - ich werde jetzt nicht mehr antworten - nicht böse sein aber ich mache jetzt aus.
AW: Zellen
18.01.2005 00:41:47
Josef
Hallo Gabor!
Kein Problem!


      
Option Explicit
Sub Zahlen()
Dim i As Integer
Dim n As Integer
Dim lastRow As Long
Dim lRow As Long
With Sheets("Tabelle3"'Tabellenname anpassen!

'erste freie Zelle in "A"
lastRow = IIf(.Range("A65536") <> "", 65536, .Range("A65536").End(xlUp).Row) + 1
If lastRow < 10 Then lastRow = 10
'letzte belegte Zelle in "C"
lRow = IIf(.Range("C65536") <> "", 65536, .Range("C65536").End(xlUp).Row)
If lRow < 6 Then lRow = 6
   
If lastRow + Application.Sum(.Range("C6:C" & lRow)) > 65536 Then
      MsgBox 
"Kein Platz mehr!"
      
Exit Sub
   
End If
   
For n = 6 To lRow
      
For i = 1 To .Cells(n, 3)
         .Cells(lastRow, 1) = i
         .Cells(lastRow, 2) = .Cells(n, 2)
         lastRow = lastRow + 1
      
Next
   
Next
End With
End Sub 


Gruß Sepp
Anzeige
AW: Zellen
18.01.2005 15:51:40
Gabor
Danke Sepp,
jetzt sind keine Wünsche mehr offen.
Ich hoffe, dass ich das auch mal von allein so hin bekomme.
Gruß Gabor

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige