Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
696to700
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
696to700
696to700
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
nächste leere Spalte
23.11.2005 10:07:16
Kathrin
Hallo Zusammen!
Ich bräuchte Eure Hilfe bei einem Makro. Ich habe eigentlich keine Ahnung von VBA und zeichne alles mit dem Recorder auf und änder dann hinter einige Sachen ab. Freie VBA-Programmierung kann ich gar nicht.
Ich möchte gerne, dass Excel per Makro in die erste Zelle der nächsten freien Spalte springt, damit ich dort etwas einfügen kann.
In der Recherche habe ich schon gesucht und auch etwas gefunden. Allerdings kann ich das nicht in mein Makro übertragen. Irgendwas klappt da nicht.
Ich hoffe mir kann jemand helfen.
Viele Grüße
Kathrin

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

Betreff
Datum
Anwender
Anzeige
AW: nächste leere Spalte
23.11.2005 10:14:04
Rainer
Hallo,

Sub nächste()
Dim a
a = Sheets("Tabelle1").UsedRange.Columns.Count 'zählt die benutzten Spalten
Cells(1, a + 1).Select 'selektiert die erste Zelle der ersten freien Spalte
End Sub

Gruß Rainer
AW: nächste leere Spalte
23.11.2005 10:54:46
Kathrin
Hallo Rainer,
das hat super geklappt, genau wie ich es brauchte.
Kannst Du mir das evt. für die erste Zelle der nächsten freien Zeile auch schreiben.
Vielen Dank
Kathrin
kleine Anmerkung
23.11.2005 11:09:44
Harald
Moin,
...zu den Eigenschaften von Usedrange.
Diesen Code in ein leeres Blatt und z.B in E1 ein "x" schreiben. Code laufen lassen
....auch schön ist, dann noch C1 markieren und lediglich die Schrift auf FETT setzen (nichts eintragen) und den Code erneut starten.

Sub richtigoderwas()
'Möglichkeit A
a = UsedRange.Columns.Count 'zählt die benutzten Spalten
Cells(1, a + 1).Select 'selektiert die erste Zelle der ersten freien Spalte
MsgBox "Richtig ? "
'Möglichkeit B
x = Cells(1, Columns.Count).End(xlToLeft).Column + 1
Cells(1, x).Select
MsgBox "Jetzt besser ?"
End Sub

Gruss Harald
Anzeige
AW: kleine Anmerkung
23.11.2005 11:43:06
Kathrin
Hallo Harald,
das klappt bei mir nicht.
Ich bekomme sofort bei:
a = UsedRange.Columns.Count 'zählt die benutzten Spalten
eine Fehlermeldung.
Gruß
Kathrin
AW: kleine Anmerkung
23.11.2005 12:12:03
Harald
Jau...ich Nase. Den Oberlehrer spielen wollen..
und die Variablendeklaration vergessen.
So solltest Du erkennen, wo Usedrange u.a. Grenzen hat.

Sub richtigoderwas()
Dim a As Integer, x As Integer
'Möglichkeit A
a = UsedRange.Columns.Count 'zählt die benutzten Spalten
Cells(1, a + 1).Select 'selektiert die erste Zelle der ersten freien Spalte
MsgBox "Richtig ? "
'Möglichkeit B
x = Cells(1, Columns.Count).End(xlToLeft).Column + 1
Cells(1, x).Select
MsgBox "Jetzt besser ?"
End Sub

Gruss Harald
Anzeige
AW: kleine Anmerkung
23.11.2005 13:41:07
Kathrin
Sorry, aber klappt immer noch nicht.
Ich bekomme weiterhin eine Fehlermeldung bei:
a = UsedRange.Columns.Count 'zählt die benutzten Spalten
Vielleicht bin ich aber auch einfal zu dämlich es anzwenden.
Hilft mir denn dieses Makro dabei, dass Excel in die erste Zelle der nächsten freien Zeile springt?
Du musst wissen ich habe so gut wie keine Ahnung von VBA.
Gruß
Kathrin
AW: kleine Anmerkung
23.11.2005 14:03:52
Harald
Hmm...Blattschutz ?
Bei mir läuft der Code fehelrfrei durch.
Wie auch immer. Hier ein Erklärungsversuch.
UsedRange nimmt den benutzen Bereich, hast du in nur in E1 was stehen, ist usedrange 1
zählst du da eine Spalte dazu, markiert er dir Spalte B
Usedrange nimmt zudem auch Zellen, in denen z.B. eine Formatierung steht, auch wenn die Zelle ansonsten leer ist.
x = Cells(1, Columns.Count).End(xlToLeft).Column
zählt von rechts nach links, bis er eine gefüllte Zelle findet. Wäre in dem Fall
richtigerweise 5 ( also E). + 1 ergibt dann F und ist die erste freie Zelle
Also nutze

Sub test()
Dim x As Integer
x = Cells(1, Columns.Count).End(xlToLeft).Column + 1
Cells(1, x).Select
End Sub

Achtung: In diesem Fall zählt er das in der ersten Zeile. Um in einer anderen Zeile zu suchen und zu markieren, mußt Du die 1 bei den beiden cells(1, ...) Angaben gegen die gewünschte Zeilennummer tauschen.
Gruss Harald
Anzeige
AW: kleine Anmerkung
23.11.2005 15:35:16
Kathrin
Vielen Dank, das Marko funktioniert! Verstanden habe ich es glaub ich auch einigermaßen.
Damit bleibt mir eine Menge Arbeit erspart!
Viele Grüße
Kathrin
Danke für die Rückmeldung owT
23.11.2005 17:49:39
Harald
An Harald
23.11.2005 18:21:34
Rainer
Hallo Harald,
Deine Lösung ist besser.
Bei mir kommt auch die Fehlermeldung bei Deinem Beispiel.
Lässt sich bei mir beheben, wenn statt:
a = UsedRange.Columns.Count
so geschrieben wird:
a = Sheets("Tabelle1").UsedRange.Columns.Count
Aber das nur nebenbei :-)
Gruß Rainer
AW: An Harald
24.11.2005 13:26:15
Harald
Hängt immer davon ab, in welchem Modul der Code steht.
...und meine Lösung ist auch nur besser, wenn in dieser bestimmten Zeile der letzte Wert steht. Steht er in einer anderen Zeile, gehts in die Buxn. ;-))
Gruss Harald
Anzeige
AW: nächste leere Spalte
23.11.2005 10:15:49
Harald
Moin Kathrin,
die letzte benutze Spalte in z.B Zeile 2 bekommst du so.
x = Cells(2, Columns.Count).End(xlToLeft).Column '2 steht für Zeile 2
die erste freie bekommst du so
x = Cells(2, Columns.Count).End(xlToLeft).Column + 1
cells(2, x)= "Hallo"
Gruss Harald

107 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige