Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1140to1144
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
Inhaltsverzeichnis

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

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
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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige