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

Makro in einer Schleife ausführen

Makro in einer Schleife ausführen
08.12.2002 17:52:59
Rolf Müller
Hallo zusammen,
Ich habe ein Makro aufgezeichnet, um einen Wert von C1 nach
B2 zu schreiben.Was muß ich tun, um dieses Makro von C1 bis C500
automatisch auszuführen. Gibt es ähnliche Befehle wie in BASIC
z.B FOR C=1 To 500
.....
NEXT C
Gruß Rolf

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Makro in einer Schleife ausführen
08.12.2002 17:55:31
Hajo_Zi
Hallo Rolf


Option Explicit

Sub Rolf()
Dim InI As Integer
For InI = 1 To 500
Cells(I + 1, 2) = Cells(I, 3)
Next InI
End Sub

Code eingefügt mit: Excel Code Jeanie

Gruß Hajo

Anzeige
Re: Makro in einer Schleife ausführen
08.12.2002 18:18:44
PeterW
Hallo Rolf,

da scheint Hajo ein kleiner Flüchtigkeitsfehler unterlaufen zu sein.

Cells(InI + 1, 2) = Cells(InI, 3)

Gruß
Peter

Re: Makro in einer Schleife ausführen
08.12.2002 19:14:40
Rolf Müller
Hallo Hajo,
Besten Dank , das du dich so schnell gemeldet hast.
Habe folgendes Makro erstellt, läuft jedoch nicht,
wird durch RUNtime error abgebrochen.
Hab ich einen Schreibfehler drin?
Gruß Rolf

Sub Makro1()
'
' Makro1 Makro
' Makro am 08.12.02 von Müller aufgezeichnet
Dim n As Integer
For n = 1 To 3000
Range("B(n+1)").Select
Selection.EntireRow.Insert
Range("Cn").Select
Selection.Cut Destination:=Range("Bn+1")
Range("An").Select
Selection.AutoFill Destination:=Range("An:An+1"), Type:=xlFillDefault
Range("An:An+1").Select
Next n
End Sub

Anzeige
Re: Makro in einer Schleife ausführen
08.12.2002 19:19:44
Hajo
Hallo Rlf

in VBA kann auf select verzichtet werdem

Leider sehe ich aus Deinem Code nicht was Du erreichen willst.
Vielleicht solltest Du mal schreiben was das Makro machen soll

Gruß Hajo

Re: Makro in einer Schleife ausführen
08.12.2002 19:38:35
Rolf Müller
Hallo Hajo,
Ich versuche, dir meine Aufgabe zu beschreiben.
Ich habe ein Latein Wörterbuch aus dem Internet in EXCEL übertragen.
Leider ist es so aufgebaut, das mehrere Bedeutungen des gleichen Wortes in einer Zeile hintereinander stehen.
Damit ich die Tabelle nach deutschen Begriffen sortieren kann,
muß ich zu nächst eine Zeile einfügen, den Lateinischen Begriff
kopieren und den 2. deutschen Begriff von C1 nachB2 kopieren.
Hier ein Beispiel:
A B C
canities graue Farbe graue Haare
canna Rohr Gefäß

A B C
canities graue Farbe
canities graue Haare
canna Rohr
canna Gefäß

Da es sich um ca. 30000 Wörter handelt, ist die manuelle Änderung
nur mit Frust zu bewerkstelligen.
Hast du eine Idee für ein Makro?
Gruß Rolf

Anzeige
Re: Makro in einer Schleife ausführen
08.12.2002 19:45:07
Hajo
Hallo Rolf

das Problem ist jetzt klarer. Aber ich sehe leider keine Lösung
Deine Werte in der Zelle
canities graue Farbe graue Haare
woher soll aber Ecel wissen das es sich um drei Begriffe handelt und nicht Fünf, wenn ich mal davon ausgehen das zu Beginn immer nur ein Lateinisches Wort steht.

Vom Grundsattz löst man solche Probleme nicht mit einer Schleife von 1 nach 3000 sondern von 3000 nach 1 mit Step -1

Aber mein Problem ist die erste Frage.

Gruß Hajo

Re: Makro in einer Schleife ausführen
08.12.2002 19:56:38
Rolf
Hallo Hajo,
Es gibt zwar für einige Wörter auch 5 deutsche Übersetzungen,
Es würde mir jedoch genügen, wenn immer nur der 2.Begriff neu eingefügt wird.
Wenn ich die erste Spalte abgearbeitet habe, kann ich ja auch einen weiteren Lauf, dann für den 3. Begriff in der 3. Spalte durchführen.
Anzeige
Re: Makro in einer Schleife ausführen
08.12.2002 19:59:08
Hajo
Hallo Rolf

PeterW hat mich schon drauf hingewiesen das ich mich verlesen habe. Ich muß jetzt erstmal das Makro erstellen

Gruß Hajo

Re: Makro in einer Schleife ausführen
08.12.2002 20:12:41
Hajo_Zi
Hallo Rolf

ich habe jetzt mal ein Makro erstellt.

Folgende Annahmen
- Zeile 1 Überschrift (For LoI = LoLetzteZeile To 2 Step -1)
- es sind max. 255 Deutsche Begriffe


Option Explicit

Sub Rolf()
Dim LoLetzteZeile As Long
Dim InLetzteSpalte As Integer
Dim LoI As Long
Dim InI As Integer
If [a65536] = "" Then
LoLetzteZeile = [a65536].End(xlUp).Row
Else
LoLetzteZeile = 65536
End If
For LoI = LoLetzteZeile To 2 Step -1
If Cells(LoI, 256) = "" Then
InLetzteSpalte = Cells(LoI, 256).End(xlToLeft).Column
Else
InLetzteSpalte = 256
End If
For InI = 2 To InLetzteSpalte
Rows(LoI + 1).EntireRow.Insert
Cells(LoI + 1, 1) = Cells(LoI, 1)
Cells(LoI + 1, 2) = Cells(LoI, InI)
Next InI
Rows(LoI).Delete
Next LoI
End Sub

Code eingefügt mit: Excel Code Jeanie

Gruß Hajo

Anzeige
Re: Makro in einer Schleife ausführen
08.12.2002 21:00:01
Rolf
Hallo Hajo,
Das sieht sehr gut aus.
Habe dein Makro mit einer einfachen Tabelle getestet.
Es funktioniert super !!!!!
Zum besseren Verständnis, was bedeutet LoI ?
Steht n in runden Klammern, oder was bedeuten die beiden II ? For InI = 2 To
Für deine Mühe besten Dank.
Als kleines Dankeschön würde ich dir das fertige Lexikon zusenden, weiß aber nicht ob du Interesse hast an Latein.
Gruß Rolf

Re: Makro in einer Schleife ausführen
08.12.2002 21:13:23
Hajo_Zi
Hallo Rolf

ich lebe in den neuen Bundesländer und während meiner Schulzeit war Latein nicht aktuell, und dies ist jetzt auch schon paar Jahrzehnte her.

LoI ist eigentlich nur ein Kennzeichen für eine Variable. Ich versuche mich in neuster Zeit an folgendes System zu halten 2 Buchstaben für den Typ und danach der Variablen Namen

Lo = Long, I = Variablennamen

For InI = 2 To
ist die Zweite Schleife ab zweiter Spalte ( in erster Spalte steht das Lateinische Wort, darum ab 2 Spalte bis zur letzten Spalte in der Zeile)

Die erste Schleife ist für die Zeilen.

hier noch mal der Code mit einigen Kommentaren. Auf Kommentare verzichte ich Grundsätzlich im ersten Posting, da nicht klar ist ob interesse am Code.


Option Explicit

Sub Rolf()
Dim LoLetzteZeile As Long
Dim InLetzteSpalte As Integer
Dim LoI As Long
Dim InI As Integer
' Letzte Zeile in Spalte A feststellen
If [a65536] = "" Then
LoLetzteZeile = [a65536].End(xlUp).Row
Else
LoLetzteZeile = 65536
End If
' Schleife für die Zeilen von der Letzten Zeile
' bis zu Zeile 2
For LoI = LoLetzteZeile To 2 Step -1
' feststellen der letzten Spalte in dr aktuellen Zeile
If Cells(LoI, 256) = "" Then
InLetzteSpalte = Cells(LoI, 256).End(xlToLeft).Column
Else
InLetzteSpalte = 256
End If
' Bearabeitung der akuellen Zeile
For InI = 2 To InLetzteSpalte
Rows(LoI + 1).EntireRow.Insert
' schreibe das Lateinische Wort der erstenSpalte in die neue Zeile
' und danach die Übersetzung der aktuellen Spalte
Cells(LoI + 1, 1) = Cells(LoI, 1)
Cells(LoI + 1, 2) = Cells(LoI, InI)
Next InI
' lösche die Zeile mit allen Übersetzungen in einer Zeile
Rows(LoI).Delete
Next LoI
End Sub

Code eingefügt mit: Excel Code Jeanie

Gruß Hajo

Anzeige
Re: Makro in einer Schleife ausführen
08.12.2002 21:36:58
Rolf
Hallo Hajo,
Ich habe früher viel in BASIC auf ATARI programiert,
daher kenne ich einige Möglichkeiten ein Problem zu lösen.
Das ist lange her.
Das Beispiel das du programmiert hast weckt in mir die Lust
auch in EXCEL noch mehr auszuprobieren,
kannst du mir noch einen Tip geben,wo man die Befehle,
deren Funktion und Schreibweise nachlesen kann?
Nochmals besten Dank
Rolf

Re: Makro in einer Schleife ausführen
08.12.2002 21:44:37
Hajo_Zi
Hallo Rolf

ich habe auch mit Basic angefangen und dann Dbase.

Bücher von Michael Kofler sind sehr gut.

oder schaue mal hier.

VBA Kurs in 21 Tagen
http://www.ti5.tu-harburg.de/manual/vba5/httoc.htm

von Thomas Ramel
Hier gibt es eine Broschüre im PDF-Format, die VBA recht anschaulich erklärt:
http://www.fernuni-hagen.de/URZ/urzbib/ls_broschueren.html
http://www.joanneum.ac.at/SERVICES/VBAEXCEL

Das meiste lernt man natürlich in den Foren. Ich schreibe immer auf Select und ähnliche Befehle sollte verzichtet werden. Das sollte man gleich von Anfang an berücksichtigen.

Gruß Hajo

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige