Anzeige
Archiv - Navigation
1376to1380
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

letzte Spalte finden und Wert einfügen

letzte Spalte finden und Wert einfügen
19.08.2014 13:27:16
Stefanie
Hey eine neue kurze Frage,
eine letzte Spalte kann so gefunden werden:
Cells(ActiveCell.Row, Columns.Count).End(xlToLeft).Offset(0, 1).Select
Jetzt habe ich versucht:
Dim var as integer
var= Cells(ActiveCell.Row, Columns.Count).End(xlToLeft).Offset(0, 1)
Var.Select
Var.Paste
Wie kann ich in die gefundene letzte Spalte nun einen Wert einfügen, den ich bereits in der Zwischenablage habe?
Vielen Dank!

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: letzte Spalte finden und Wert einfügen
19.08.2014 13:35:22
Robert
Hallo Stefanie,
kein select bitte!
Probiere:
Columns(var).Paste

viele Grüße
robert

AW: letzte Spalte finden und Wert einfügen
19.08.2014 13:48:48
Stefanie
Funkioniert leider auch nicht :-( hab keine Idee mehr hilfe

AW: letzte Spalte finden und Wert einfügen
22.08.2014 11:42:01
Stefanie
Auch an dich vielen Dank für den Hinweis :-)

AW: letzte Spalte finden und Wert einfügen
19.08.2014 14:19:34
{Boris}
Hi Stefanie,
Du dimensionierst var als Integer - also als ganze Zahl bis max. 32767.
Cells(ActiveCell.Row, Columns.Count).End(xlToLeft).Offset(0, 1)

gibt aber einen Range (Bereich) zurück - und diesen kann man nicht an eine Integer-Variable zuweisen (abgesehen davon, dass Bereichszuweisungen das Schlüsselwort Set erfordern).
Es reicht daher diese Codezeile:
Cells(ActiveCell.Row, Columns.Count).End(xlToLeft).Offset(0, 1) = "Dein Wert"

oder mit Copy & Paste:
Range("A4:A6").Copy Cells(ActiveCell.Row, Columns.Count).End(xlToLeft).Offset(0, 1)

VG, Boris

Anzeige
AW: letzte Spalte finden und Wert einfügen
19.08.2014 14:33:39
Stefanie
Hey danke für deine Hilfe. Ich weiß leider noch nicht wie ech es umsetzen soll?
Haben jetzt ein Selection.Copy
und das möchste ich in die nächste freie Spalte einfügen.
Sorry bin noch nicht so fitt in VBA, wäre toll wenn du ein kleines Bsp. hättest.

AW: letzte Spalte finden und Wert einfügen
19.08.2014 14:39:51
{Boris}
Hi Stefanie,
bei
Range("A4:A6").Copy Cells(ActiveCell.Row, Columns.Count).End(xlToLeft).Offset(0, 1)

musst Du nur Range("A4:A6") durch Selection ersetzen, also
Selection.Copy Cells(ActiveCell.Row, Columns.Count).End(xlToLeft).Offset(0, 1)
VG, Boris

Anzeige
AW: letzte Spalte finden und Wert einfügen
19.08.2014 14:45:54
Stefanie
Aber ich benötige doch noch irgendwo ein Paste?
Der kopierte Wert ist ja bereits in der Ziwschenablage und diesen möchte ich in die nächste freie Spalte einfügen ?
Oder steht mir gerade jemand auf dem Schlauch ?

Selection.Copy
'letzte Freie Spalte ermitteln
Selection.Copy Cells(ActiveCell.Row, Columns.Count).End(xlToLeft).Offset(0, 1)
ActiveSheet.Paste
ActiveSheet.Paste meckert er allerdings!

AW: letzte Spalte finden und Wert einfügen
19.08.2014 18:04:29
{Boris}
Hi Stefanie,
mach doch einfach nur das, was ich Dir geschrieben habe.
NUR diese eine Zeile.
Die Copy-Methode hat den optionalen Parameter Destination = Ziel.
Den muss man nicht "betiteln" - im folgenden mache ich das aber mal:
Sub stefanie()
Selection.Copy Destination:=Cells(ActiveCell.Row, Columns.Count).End(xlToLeft).Offset(0,  _
1)
End Sub
VG, Boris

Anzeige
AW: letzte Spalte finden und Wert einfügen
20.08.2014 01:26:21
Ewald
Hallo,
wenn ich das richtig verstehe, geht es nicht um das normale Kopieren/einfügen,du willst aus der Zwischenablage einfügen.
Mit Paste geht das nicht, Paste steht nur zur Verfügung wenn der CutCopymodus aktiv ist.Beim Starten eines Mskros wird dieser aber beendet.
Um aus der Zwischanablage zu kopieren, kommt es darauf an was drinsteht,ist es nur Text geht es mit dem Dataobjekt.
Um jetzt auch alles andere einzufügen, kenne ich keinen Code.
Denn die manuelle Vorgehensweise Zelle markieren/Zwischenablage öffnen/Klick auf den Eintrag ist wohl mit Makros nicht zu machen,ist mir jedenfalls nicht bekannt.
Vielleicht kennt ja jemand eine Lösung.
Gruß Ewald

Anzeige
AW: letzte Spalte finden und Wert einfügen
20.08.2014 07:51:07
Stefanie
Vielen Dank für eure Antworten.
Danke Boris das hat jetzt funktioniert, entschuldige das mit der Destination habe ich nicht gesehen!
Falls es jemand interessiert, diese Methode habe ich auch noch gefunden:
Cells(1, IIf(IsEmpty(Cells(1, Columns.Count)), _
Cells(1, Columns.Count).End(xlToLeft).Column, Columns.Count) + 1).Select
Wisst ihr zufällig wie ich mir nun die Spalte die ich gefunden habe, auf eine Variable legen kann? Ich benötige die Spalte, um mit Cells(1,gefundenenSpalte) zu arbeiten ?
Danke für eure Hilfe!

AW: letzte Spalte finden und Wert einfügen
20.08.2014 07:59:26
Stefanie
Vielen Dank für eure Antworten.
Danke Boris das hat jetzt funktioniert, entschuldige das mit der Destination habe ich nicht gesehen!
Falls es jemand interessiert, diese Methode habe ich auch noch gefunden:
Cells(1, IIf(IsEmpty(Cells(1, Columns.Count)), _
Cells(1, Columns.Count).End(xlToLeft).Column, Columns.Count) + 1).Select

Wisst ihr zufällig wie ich mir nun die Spalte die ich gefunden habe, auf eine Variable legen kann? Ich benötige die Spalte, um mit Cells(1,gefundenenSpalte) zu arbeiten ?
Danke für eure Hilfe!

Anzeige
AW: letzte Spalte finden und Wert einfügen
20.08.2014 12:56:34
{Boris}
Hi Stefanie,
Falls es jemand interessiert, diese Methode habe ich auch noch gefunden:
Cells(1, IIf(IsEmpty(Cells(1, Columns.Count)), _
Cells(1, Columns.Count).End(xlToLeft).Column, Columns.Count) + 1).Select

Ich merke, du "fummelst" Dich gerade ein wenig in VBA rein - gut so!
Allerdings gibt es Methoden (hier: die Select-Methode), die tatsächlich zu nahzu 100% überflüssig ist.
Da gibt es wesentlich elegantere Möglichkeiten.
Beispielsweise muss man einen Zellinhalt nicht kopieren, um ihn dann irgendwo wieder einzufügen.
Das löst man in der Regel mit einer direkten Zuweisung:
Range("D1").Value = Range("A1").Value
So macht es der Makrorecorder - ihm sei es verziehen, aber die Programmierung ist gruselig:
Range("A1").Select
Selection.Copy
Range("D1").Select
ActiveSheet.Paste
Um nur mal 1 Beispiel zu nennen.
Und wenn Du mal Dein Problem konkret schilderst - am besten mittels Beispielmappe - dann kann man Dir auch noch anders helfen - und Dich vor allen Dingen beim VBA-Lernen direkt in die richtige Richtung "schubsen" ;-))
VG, Boris

Anzeige
Du weißt ja, Boris, warum der Recorder das ...
21.08.2014 12:46:07
Luc:-?
…macht, aber für alle, die es nicht wissen,
das ist überwiegend historisch bedingt, denn der Recorder hatte wohl ursprünglich die primäre Aufgabe, MausBewegungen aufzuzeichnen, um so einfache DemoPgmm zu erstellen. Unter Xl/MSO95 lief der Mauszeiger mit.
Gruß, Luc :-?
Besser informiert mit …

Auch ich hab das...
22.08.2014 19:00:44
{Boris}
Hi Luc,
...ehrlich gesagt nicht gewusst. Bin so`n 71er Jahrgang - wahrscheinlich wirst Du schon etwas mehr Erfahrung haben?! ;-))
VG, Boris

Anzeige
AW: Auch ich hab das...
22.08.2014 19:46:58
Mullit
Hallo,
.....guuuuuter Jahrgang....
Gruß,

Yeah! ;-)) oT
22.08.2014 20:11:52
{Boris}
...

Na, da warst du doch schon 24 (wie meine ...
23.08.2014 00:03:16
Luc:-?
…Älteste, die inzwischen seit Jahren in D'dorf arbeitet), Boris;
was wohl auch meinerseits die Frage nach der Güte dieses Jahrgangs beantwortet… ;-)
(Aber auch '78 ist nicht ohne — meine 2.!)
Gruß, Luc :-?

AW: letzte Spalte finden und Wert einfügen
22.08.2014 07:53:35
Stefanie
Hi Boris,
ja genau ich fummel mich zur Zeit wirklich etwas so durch ;-) langsam klappt es auch ganz gut. Vielen Dank für den Tipp. Das habe ich nicht gewusst. So ist es wohl wirklich viel eleganter!
Ich hatte sowas hier gemeint (hab mein Problem mittlerweise behoben) :
 aktuelle_spalte = ActiveCell.EntireColumn.Column
Das nächste mal versuche ich mein Problem näher zu beschreiben!
Vielen Dank für eure Hilfe. Ist wirklich super das Forum!

Anzeige
Und auch das...
22.08.2014 14:28:50
{Boris}
Hi Stefanie,
...ist noch "von hinten durch die Brust ins Auge und wieder zurück"... ;-))
aktuelle_spalte = ActiveCell.EntireColumn.Column
Die ActiveCell-Eigenschaft gibt ein OBJEKT zurück - und zwar die aktive Zelle. Dieses Objekt hat mehrere Eigenschaften - unter anderem die bereits von Dir benötigte: die Column-Eigenschaft. Damit bekommst Du als Rückgabewert die gewünschte Nr. der Spalte.
Mit Deiner Codezeile gehst Du also einen unnötigen Umweg dadurch, dass Du aus der aktiven Zelle zunächst mittels der EntireColumn-Eigenschaft ein neues Range-Objekt erzeugst (=überflüssig), das in diesem konkreten Fall die gesamte Spalte der aktiven Zelle ist. Dieses Objekt (=die ganze Spalte) wiederum besitzt auch die Column-Eigenschaft, wodurch Du auch so an das gewünschte Ergebnis - also die Spaltennummer - kommst. Ist aber eben "von hinten durch die Brust ins Auge und wieder zurück" ;-)
Einfacher wäre es halt so:
aktuelle_spalte = ActiveCell.Column
Und um jetzt noch einen drauf zu setzen: In den allermeisten Fällen benötigt man die Spaltennummer NICHT ... ;-)) - will heißen: es gibt andere / bessere Wege der Programmierung. Aber das ist nun Spekulation, denn ich kenne Dein gesamtes Vorhaben nunmal nicht.
VG, Boris
Anzeige

330 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige