VBA markiert nicht richtig

03/07/2014 - 14:47 von Jürgen Stadermann | Report spam
Hallo und Guten Tag.
Ich bin z.Zt. total ratlos.
Mit folgender Befehlsfolge soll ein Bereich markiert werden,doch die
Markierung schießt zu beiden Seiten, also nach links und nach rechts
übers ziel hinaus.

Hier der Code:

Zelle.Offset(0, ersterdatumseintrag + 1).Activate
Range(ActiveCell, ActiveCell.Offset(0, letzterdatumseintrag -
3)).Columns().EntireColumn.Select
Range(ActiveCell(), ActiveCell.Offset(0, letzterdatumseintrag -
3)).Columns().EntireColumn.Select
Selection.EntireColumn.Delete

Zelle.Offset(0, ersterdatumseintrag).Activate

Hintergrund/Erlàuterung:
Focus steht in Spalte "A"
wird nach Spalte "B" gesetzt und die Zelle (also cells) aktiviert.
Jetzt soll von hier nach rechts bis z.Bsp. 11 Zellen weiter markiert
werden, doch was geschieht:
Es wird nach rechts 15 Zellen markiert (also 4 mehr) und nach links
mindestens 2 markiert (wie viel kann ich nicht erkennen) b.z.w. schießt
die Markierung übers Ziel hinaus.
wird > Selection.EntireColumn.Delete < ausgeführt,

kommt danach die Meldung: Objekt erforderlich ,,,, Laufzeitfehler '424'
weil ein bestimmter Datumseintrag jetzt nicht gefunden wurde.

Das Kuriose an der ganzen Geschichte ist:
In einer anderen Arbeitsmappe,
die - abgesehen von ein paar mehr Tabellenzeilen - genau das Selbe
beinhaltet, funktioniert das alles.


Wollte nun heute Nachmittag eine Übergabe machen, aber das wird wohl
nichts.

Mit der Bitte um rasche Hilfe.

Ich arbeite mit Excel 2010 unter Windows 7

Danke schon mal.

Jürgen























Diese E-Mail ist frei von Viren und Malware, denn der avast! Antivirus Schutz ist aktiv.
http://www.avast.com
 

Lesen sie die antworten

#1 Claus Busch
03/07/2014 - 15:04 | Warnen spam
Hallo Jürgen,

Am Thu, 03 Jul 2014 14:47:00 +0200 schrieb Jürgen Stadermann:

Focus steht in Spalte "A"
wird nach Spalte "B" gesetzt und die Zelle (also cells) aktiviert.
Jetzt soll von hier nach rechts bis z.Bsp. 11 Zellen weiter markiert
werden, doch was geschieht:
Es wird nach rechts 15 Zellen markiert (also 4 mehr) und nach links
mindestens 2 markiert (wie viel kann ich nicht erkennen) b.z.w. schießt
die Markierung übers Ziel hinaus.
wird > Selection.EntireColumn.Delete < ausgeführt,



du brauchst kein Select, kein Selection und kein Activate.

Probiere es mal so:

Dim letzterdatumseintrag As Long

letzterdatumseintrag = Cells(ActiveCell.Row, Columns.Count) _
.End(xlToLeft).Column
Range(ActiveCell.Offset(, 1), Cells(ActiveCell.Row, _
letzterdatumseintrag - 3)).EntireColumn.Delete


Mit freundlichen Grüßen
Claus
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional

Ähnliche fragen