Spaltelöschen

Bild

Betrifft: Spaltelöschen von: Thomas
Geschrieben am: 07.04.2005 13:02:45

Habe folgendes VBA-Problem: Ich möchte Spalte löschen und diese anhand ihres Textes in der ersten Zeile identifizieren. Die Spalte an sich möchte ich nicht benennen. Also z.B. in C1 steht "Artikelnr". Dann möchte ich die Spalte löschen, in der in der ersten Zeile "Artikelnr" steht. Geht das?


VG, Thomas

Bild


Betrifft: AW: Spaltelöschen von: u_
Geschrieben am: 07.04.2005 13:18:08

Hallo,
nur 1x, im gleichen Blatt und ab Spalte D?

Sub Spalte_weg()
Range("D1:IV1").Find(Range("C1"), after:=Range("D1")).EntireColumn.Delete
End Sub

Gruß


Bild


Betrifft: AW: Spaltelöschen von: Thomas
Geschrieben am: 07.04.2005 13:24:38

Nein. Folgendes: Ich habe ca. 35 Spalten im Sheet, davon sollen ca. 20 gelöscht werden. Identifizierung der zu löschenden Spalten aber nur über den Text in der ersten Zeile möglich.


Bild


Betrifft: AW: Spaltelöschen von: u_
Geschrieben am: 07.04.2005 13:30:52

Hallo,
dann eben so: (nicht sehr elegant)

Sub Spalte_weg()
  Dim i As Integer
  Application.ScreenUpdating = False
  For i = 3 To 255
    If Cells(1, i) = Range("C1") Then Cells(1, i).EntireColumn.Delete
  Next i
  Application.ScreenUpdating = False
End Sub

Gruß


Bild


Betrifft: AW: Spaltelöschen von: Thomas
Geschrieben am: 07.04.2005 13:45:21

Fehlermeldung in folgenden Zeile:

If Cells(1, i) = Range("Artikel_Nr") Then Cells(1, i).EntireColumn.Delete

Sagt zum einen: Cells(l, i) = "latent"
Zum anderen Problem mit der Verbindung "Range" und "Artikel_Nr" - wie gesagt, die Spalte heißt nicht so, sondern das ist nut der Text in der ersten Zeile.


Bild


Betrifft: AW: Spaltelöschen von: u_
Geschrieben am: 07.04.2005 13:52:32

Hallo,
du hast geschrieben, wenn in C1 Artikel_Nr steht, dann soll die Spalte, in der in Zeile 1 dieses Wort steht, gelöscht werden. Und das macht der Code.
Ändere:
If Cells(1, i) = Artikel_Nr" Then Cells(1, i).EntireColumn.Delete

Gruß


Bild


Betrifft: Korrektur von: u_
Geschrieben am: 07.04.2005 13:54:03

Hallo,
If Cells(1, i) = "Artikel_Nr" Then Cells(1, i).EntireColumn.Delete

Gruß


Bild


Betrifft: AW: Korrektur von: Thomas
Geschrieben am: 07.04.2005 14:06:27

Hm, noch geht's nicht so richtig: "Die Methode 'Range' für das Projekt '_Global' ist fehlgeschlagen"

Kann ich nicht einfach für den Bereich Spalte 1 bis ca. 50 untereinander zwanzig Spalten aufzählen, die er löschen soll?


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Wert immer in oberster Zeile anzeigen."