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
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
da scheint Hajo ein kleiner Flüchtigkeitsfehler unterlaufen zu sein.
Cells(InI + 1, 2) = Cells(InI, 3)
Gruß
Peter
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
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
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
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
PeterW hat mich schon drauf hingewiesen das ich mich verlesen habe. Ich muß jetzt erstmal das Makro erstellen
Gruß Hajo
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
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
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
schau mal hier:
http://www.ti5.tu-harburg.de/manual/vba5/httoc.htm
Gruß
Peter