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

Spalten und Zeichen per VBA löschen?

Spalten und Zeichen per VBA löschen?
11.04.2005 19:23:55
Selma
Hallo Leute,
ich würde gern per Makro folgendes erreichen:
1. Spalte B, C, D und H sollen gelöscht werden...
2. in Spalte G sollen von rechts gesehen 7 Zeichen des Zellinhaltes gelöscht werden
Wie mache ich das?
Danke im Voraus....
Liebe Grüße
SELMA

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten und Zeichen per VBA löschen?
11.04.2005 20:00:50
ransi
hallo selma
zu1)
löschen geht z.B. so:
Public

Sub t()
Range("B:B,C:C,D:D,H:H").Delete
End Sub

zu2)
jetzt ist spalte G aber spslte D.
aus welcher zelle willst du jetzt die 7 zeichen löschen?
ransi
AW: Spalten und Zeichen per VBA löschen?
11.04.2005 20:11:41
Selma
Hallo ransi,
danke zu 1)
zu2)
Ich will bei allen Zellen in "jetzt" Spalte D die 7 Zeichen (von rechts gesehen) löschen.
Gruß
SELMA
"jetzt" hat aber nur 5 zeichen !! Und nu..?
11.04.2005 20:20:09
ransi
hallo
"Ich will bei allen Zellen in "jetzt" Spalte D die 7 Zeichen (von rechts gesehen) löschen"
jetzt hat aber nur 5 zeichen.
ist das ein benannter bereich ?
steht da die formel =jetzt() ?
oder wie oder was...?
ransi
Anzeige
Format ändern ?
11.04.2005 21:24:17
ransi
hallo selma
Public

Sub r()
Dim zelle As Range
For Each zelle In Range("D:D").SpecialCells(xlCellTypeFormulas)
If InStr(1, zelle.FormulaLocal, "=JETZT()") > 0 Then zelle.NumberFormat = "dd/mm/yy"
Next
End Sub

ransi
AW: Spalten und Zeichen per VBA löschen?
11.04.2005 20:19:29
Luc
Hallo Selma,
das müsste sich doch wunderbar mit dem Makrorecorder aufzeichnen lassen, zumindest was die gelöschten Spalten betrifft. Für Spalte G brauchst du dann eine einfache While-Schleife:

i=1
with Range("G:G")
while len(.cells(i).value)>6
.cells(i).value=left(.cells(i).value,len(.cells(i).value)-7)
i=i+1
wend
end with 

Voraussetzung ist hierbei, dass alle Zellinhalte mindestens 7 Zeichen lang sind. Bei der ersten Zelle mit kürzerem Inhalt (oder leer) wird die Abarbeitung beendet, weil sonst die Kürzung zu einem Fehler führen würde. Wenn solche und auch leere Zellen zwischendurch auftreten können, muss stattdessen eine For-Schleife gewählt wdn und nach der letzten belegten Zelle beendet wdn. Zellen mit kürzerem Inhalt müssen innerhalb der Schleife per If-Verzweigung übergangen wdn.
Gruß Luc :-?
Anzeige
AW: Spalten und Zeichen per VBA löschen?
11.04.2005 20:47:42
Selma
@ransi
da steht z.B. 25.02.2005 13:50:00
es soll nur dies bleiben 25.02.2005
@Luc
genau wenn eine Leerzelle auftritt, dann wird das Makro nicht weiter ausgeführt. :-)
Code:

Sub DEL()
Range("B:B,C:C,D:D,H:H").Delete
i = 1
With Range("D:D")
While Len(.Cells(i).Value) > 6
.Cells(i).Value = Left(.Cells(i).Value, Len(.Cells(i).Value) - 9)
i = i + 1
Wend
End With
End Sub

Was muss ich noch ändern, damit das Makro korrekt ausgeführt wird ?
Leere Zellen in Spalte D sollen ignoriert werden.
Danke nochmals....
SELMA
Anzeige
AW: Hatte ich bereits angedeutet,...
11.04.2005 21:08:01
Luc
Selma,

with Range("G1:G...")         'für ... die letzte Zeile einsetzen
for i=1 to .cells.count
if len(.cells(i).value)>6
.cells(i).value=left(.cells(i).value,len(.cells(i).value)-7)
end if
next i
end with 

Wenn die Zeilenzahl variieren kann, muss zuvor die Länge des Bereichs in Zeilen ermittelt wdn. Dazu findest du dann bestimmt was in der Archivrecherche.
Ciao Luc :-?
AW: Hatte ich bereits angedeutet,...
11.04.2005 21:22:03
Selma
Danke Luc !
Gruß
SELMA

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige