Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Lehrnhilfe

Forumthread: Lehrnhilfe

Lehrnhilfe
Torsten
Hallo zusammen,
kann mir einer sagen wie ich es hin bekomme, dass beim nächsten Durchlauf die Bereiche im ersten Range +1 und beim zweiten Range +5 gerechnet werden?
Do While Zähler = 27
Zähler = Zähler + 1
Range("D2:E2,D29:E29,D56:E56,D83:E83,D110:E110").Select
Selection.Copy
Range("G2").Select
ActiveSheet.Paste
Loop
Ich versuche mir gerade etwas VBA bei zu bringen...
Grüsse
Torsten
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Lehrnhilfe
05.03.2010 10:55:49
David
Hallo Torsten.
Eine Verschiebung eines Range erreichst du mit Offset.
Deine Copy-Zeilen lassen sich zusammenfassen:
Range("D2:E2,D29:E29,D56:E56,D83:E83,D110:E110").Offset(1, 0).Copy Destination:=Range("G2")
würde den benannten Range um eine Zeile nach unten verschoben, ins Ziel kopieren.
Gruß
David
Anzeige
Zum Lernen: Lernhilfe :-) o.w.T.
05.03.2010 10:59:42
Reinhard

OT: Hi, Reinhard, schlimme Gedankenlosigkeit...
05.03.2010 15:57:05
Luc:-?
…in den AW-Betreffs hier, ne'wa! Armes Deutsch(land)… :-/
Gruß Luc :-?
Luc: Er meinte: Hirnhälfte ;-D (owT)
05.03.2010 16:11:14
Renee

Anzeige
Dassjaman ook 'ne irre Varjante, Renée! orT
05.03.2010 16:29:07
Luc:-?
Gruß+schöWE, Luc :-?
Bei mia iss klaar, bünn krank!
AW: Lehrnhilfe
05.03.2010 11:00:46
Josef

Hallo Torsten,
"Ich versuche mir gerade etwas VBA bei zu bringen..."
dann gewöhne dir das .Select und .Activate gar nicht erst an, es ist zu 99% überflüssig und macht den Code langsam und unübersichtlich.
Probier mal, ist allerding ungetestet!


Sub Thorsten()
  Dim lngRow As Long
  
  For lngRow = 2 To 27
    Union(Range(Cells(lngRow, 4), Cells(lngRow, 5)), Range(Cells(lngRow + 24, 4), _
      Cells(lngRow + 24, 5)), Range(Cells(lngRow + 54, 4), Cells(lngRow + 54, 5)), _
      Range(Cells(lngRow + 81, 4), Cells(lngRow + 81, 5)), Range(Cells(lngRow + 108, _
      4), Cells(lngRow + 108, 5))).Copy Cells(((lngRow - 2) * 5) + 2, 7)
  Next
  
End Sub

Gruß Sepp

Anzeige
AW: Lehrnhilfe
05.03.2010 11:53:53
Torsten
Hi Sepp,
so hat es funktioniert:
Dim lngRow As Long
For lngRow = 2 To 28
Union(Range(Cells(lngRow, 4), Cells(lngRow, 5)), Range(Cells(lngRow + 27, 4), _
Cells(lngRow + 27, 5)), Range(Cells(lngRow + 54, 4), Cells(lngRow + 54, 5)), _
Range(Cells(lngRow + 81, 4), Cells(lngRow + 81, 5)), Range(Cells(lngRow + 108, _
4), Cells(lngRow + 108, 5))).Copy Cells(((lngRow - 2) * 5) + 2, 7)
Next
Kannst Du mir bitte noch erklären was bei diesen Schritten im einzelnen passiert: Cells(((lngRow - 2) * 5) + 2, 7) ?
Ist mir irgendwie nicht klar...
Gruss
Torsten
Anzeige
AW: Lehrnhilfe
05.03.2010 12:04:06
Josef

Hallo Torsten,
na du wolltest doch in 5er Schritten von zwei weg hochzählen,
und genau das macht "((lngRow - 2) * 5) + 2".

Gruß Sepp

Anzeige
AW: Lehrnhilfe
05.03.2010 12:10:03
Torsten
"((lngRow - 2) * 5) + 2"
lngRow ist doch anfänglich 2, oder?
Also: 2-2 = 0*5=0+2=2 aber das stimmt offensichtlich so nicht... Warum?
AW: Lehrnhilfe
05.03.2010 13:41:25
Josef

Hallo Torsten,
was stimmt nicht?

Gruß Sepp

Anzeige
AW: Lernhilfe
05.03.2010 12:11:58
Reinhard
Hallo Thorsten,
Tabellenblatt: C:\Dokumente und Einstellungen\ich2\Eigene Dateien\[WebseiteAuslesen.xls]! _
Tabelle3
│    A   │           B          │
--┼--------┼----------------------┼
1 │ lngRow │ lngRow - 2) * 5) + 2 │
--┼--------┼----------------------┼
2 │      2 │                    2 │
--┼--------┼----------------------┼
3 │      3 │                    7 │
--┼--------┼----------------------┼
4 │      4 │                   12 │
--┴--------┴----------------------┴
Benutzte Formeln:
B2: =(A2-2)*5+2
B3: =(A3-2)*5+2
B4: =(A4-2)*5+2
A1:B4
haben das Zahlenformat: Standard
Gruß
Reinhard
Anzeige
AW: Lehrnhilfe
05.03.2010 11:00:52
Renee
Hallo Torsten,
Ich kann dir keine Hilfe geben, aber vielleicht du mir:
Was willst du erreichen ?
Wenn du dir VBA beibringen willst:
1. Vergiss / lösche / wirf weg, was auch immer mit .SELECT oder .ACTIVATE zu tun hat: Dazu lese das hier
2. Alles muss deklariert sein. Darum als erste Codezeile immer Option Explicit
3. Hilfe benutzen Do While Zähler = 27 läuft nur wenn die Variable Zähler vorher auf 27 gesetzt wurde. Cursor im VB-Editor auf Do While und F1.
4. Beschreibe was du genau erreichen willst!
GreetZ Renée
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige