Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel 2003 - Zeileninhalt 20 mal tauschen - VBA ???
#1
hallo,

ich würde gerne folgendes realisieren:

Es geht um einen Programmablauf der 20 x ablaufen soll.


Beim drücken des CommandB1 soll folgendes ablaufen:

1. Ablauf
Copy Range DW1:FS20 nach DW22:FS41
Dann rufe ich über Call ein anderes Modul auf

2. Ablauf
Dann wird der Zeileninhalt DW22:FS22 getauscht mit  DW23:FS23
Dann rufe ich über Call ein anderes Modul auf

3. Ablauf
Dann wird der Zeileninhalt DW22:FS22 getauscht mit  DW24:FS24
Dann rufe ich über Call ein anderes Modul auf

4. Ablauf

Dann wird der Zeileninhalt DW22:FS22 getauscht mit  DW25:FS25
Dann rufe ich über Call ein anderes Modul auf

usw. bis

20. Ablauf

Dann wird der Zeileninhalt DW22:FS22 getauscht mit  DW41:FS41
Dann rufe ich über Call ein anderes Modul auf


Wie könnte ich das in eine Schleife umsetzen ?

Danke für jede Hilfe

LG
Angelina
Antwortento top
#2
Hallo,

und was soll das werden? Ich sehe keinerlei Sinn daran, überhaupt die Tabelle zu kopieren, noch irgendwelche Daten zu tauschen, das könnte man über eine Schleife machen, mit der man jede Zeile abfragt. Aber das hatten wir doch schon mal.

49Aufrufe ohne Antwort sagen ja schon einiges aus. Ich verlinke mal zu Deinen alten Anfragen.

http://www.clever-excel-forum.de/thread-1839.html
Gruß
Opa Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antwortento top
#3
(27.04.2015, 07:47)BoskoBiati schrieb: Hallo,

und was soll das werden? Ich sehe keinerlei Sinn daran, überhaupt die Tabelle zu kopieren, noch irgendwelche Daten zu tauschen, das könnte man über eine Schleife machen, mit der man jede Zeile abfragt. Aber das hatten wir doch schon mal.

49Aufrufe ohne Antwort sagen ja schon einiges aus. Ich verlinke mal zu Deinen alten Anfragen.

http://www.clever-excel-forum.de/thread-1839.html

hallo,

du verlinkst auf ein Thema was erledigt ist.
Hat doch mit dieser Aufgabe nichts zu tun.

Du schreibst "das könnte man über eine Schleife machen..."
Dodgy das war doch meine Frage

Angelina
Antwortento top
#4
Hallo,

im Grunde genommen sind die ganzen Grundlagen für Deine neue Aufgabe schon in diesem Thread abgehandelt worden. Ich frage mich, ob Du außer den Code zu kopieren, noch etwas in VBA gemacht hast. Die Aufgabenstellung von heute ist allerdings noch sehr unklar. Was machen die Makros, die Du laufen lassen willst, wie werden die daten verändert, sollen die Daten wieder zurückgeschrieben werden usw. Ich bitte um eine präzise und detaillierte Beschreibung.
Gruß
Opa Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antwortento top
#5
Hallo Angelina,

du kannst mit Call kein Modul aufrufen sondern nur eine Sub bzw. Function. Teste mal den Code.

Code:
Sub prcAngelina()
  Dim lngC As Long
  Dim vntZeile As Variant
 
  Range("DW1:FS20").Copy Range("DW22:FS41")
  'Call
  For lngC = 23 To 41
     vntZeile = Cells(lngC, 127).Resize(, 49)
     Cells(22, 127).Resize(, 49).Copy Cells(lngC, 127)
     Cells(22, 127).Resize(, 49) = vntZeile
     'call
  Next lngC
End Sub
Gruß Stefan
Win 7 / Office 2007
[-] Folgende(r) 1 Benutzer sagt Danke an Steffl für diesen Beitrag:
  • Angelina
Antwortento top
#6
Hallo Angelina,

Code:
'1. Ablauf
'Copy Range DW1:FS20 nach DW22:FS41
'Dann rufe ich über Call ein anderes Modul auf
'
'2. Ablauf
'Dann wird der Zeileninhalt DW22:FS22 getauscht mit  DW23:FS23
'Dann rufe ich über Call ein anderes Modul auf
'
'3. Ablauf
'Dann wird der Zeileninhalt DW22:FS22 getauscht mit  DW24:FS24
'Dann rufe ich über Call ein anderes Modul auf
'
'4. Ablauf
'
'Dann wird der Zeileninhalt DW22:FS22 getauscht mit  DW25:FS25
'Dann rufe ich über Call ein anderes Modul auf
Sub ang()
Range("Dw1:Fs20").Copy Range("DW22")
For i = 1 To 19
    Range("Dw22:Fs22").Copy Range("DW" & 22 + i)
Next
End Sub
lg Chris
Feedback nicht vergessen.
3a2920576572206973742064656e20646120736f206e65756769657269672e
 [Bild: v.gif]

Antwortento top
#7
hallo,
danke für deine Hilfe.

Frage:

Wo sollte der Call eingebaut werden?


Code:
Sub ang()
Range("Dw1:Fs20").Copy Range("DW22")
For i = 1 To 19
    Range("Dw22:Fs22").Copy Range("DW" & 22 + i)
Next
End Sub

LG
Angelina
Antwortento top
#8
hallo danke auch dir für deine Hilfe.

Habe deine Version getestet - komme nicht ganz klar damit


So habe ich es nun:

  Dim lngC As Long

  Dim vntZeile As Variant
 
  Range("DW1:FS20").Copy Range("DW22:FS41")
  Call UngleichRaus 'Modul 2
  Call WasWieOft ' Modul 1
  Call AbInFreiZeile 'Modul 3
 
  Bis hierher stimmt der Ablauf (Kopiere Range) - dann über Call meine Sub aufgerufen - Ergebnis stimmt



 
 Dann wird der Zeileninhalt DW22:FS22 getauscht mit  DW23:FS23
 Dann rufe ich über Call ein anderes Modul auf


???


     For lngC = 23 To 41
     vntZeile = Cells(lngC, 127).Resize(, 49)
     Cells(22, 127).Resize(, 49).Copy Cells(lngC, 127)
     Cells(22, 127).Resize(, 49) = vntZeile
     
     Call UngleichRaus 'Modul 2
     Call WasWieOft ' Modul 1
     Call AbInFreiZeile 'Modul 3
 
    
  Next lngC




LG
Angelina
Antwortento top
#9
Hallo Angelina,

und was ist dir unklar?
Gruß Stefan
Win 7 / Office 2007
Antwortento top
#10
(27.04.2015, 11:20)Steffl schrieb: Hallo Angelina,

und was ist dir unklar?

hallo,

mir ist unklar ob ich den Call richtig eingebaut habe
ab ???


ups - ich glaube ich habe den Fehler bei mir gefunden !!!

Teste nochmals und melde micht später nochmals

LG
Angelina
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste