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

Spalten löschen, wenn Spaltenname = Wert aus range

Spalten löschen, wenn Spaltenname = Wert aus range
19.08.2002 19:53:57
bastian
hallo,

ich habe ein Tabellenblatt, in welchem ich bestimmte Spalten löschen möchte, wenn in der ersten Zeile ein Wert steht, welcher in eine Liste (in einem andern Tab.blatt9 vorkommt.

Ich fummel hier schon zu lange am dem Makro herum ... hat jemand eine Idee ?

Gruss & Dank,

Bastian

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Spalten löschen, wenn Spaltenname = Wert aus range
19.08.2002 19:59:29
PeterW
Hallo Bastian,

wie sieht Dein Makro denn bis jetzt aus?

Gruß
Peter

Re: Spalten löschen, wenn Spal
19.08.2002 20:05:17
bastian
Sub Makro()

Folgendermassen, aber es ist noch nicht einmal fehlerfrei kompiliert:


Dim range As range, sName As String, suchCell As range
range = Worksheets("tats. Merkmale").RangeSelection
For Each col In ActiveSheets.Columns
sName = col.Cell(first).Value
Set suchCell = range.Find(What:="sName", LookIn:=xlValues, LookAt:=xlWhole)
If suchCell Is Nothing Then
Else: col.Delete
Next col

End Sub

Gruss & Dank, Bastian

Re: Spalten löschen, wenn Spal
19.08.2002 20:22:54
PeterW
Hallo Bastian,

ich würde das mit geschachtelten Schleifen lösen:

aus Blatt9 nacheinander die Werte in eine Variable packen
nacheinander mit allen Zellen in Zeile 1 des "Löschblattes" vergleichen
bei Übereinstimmung Spalte löschen und For verlassen
mit nächster Zelle weiter
nächster Wert aus Blatt9

Wenn man jetzt genauer wüßte, in welchen Bereichen welcher Tabellen Werte/Texte stehen könnte man mit diesen Angaben problemlos den Code schreiben.

Gruß
Peter

Anzeige
Re: Spalten löschen, wenn Spal
19.08.2002 20:45:59
bastian
Danke,

ich fange mal gleich an ... die Werte zum vergleichen stehen in Tabellee3, A1:A68, die zu durchsuchenden Tabellen sind Tabelle 1 und 2, dort die Bereiche A1:IV264

Gruss & Dank,

Bastian

Re: Spalten löschen, wenn Spal
19.08.2002 21:01:27
PeterW
Hallo Bastian,

jetzt versteh ich nur noch Bahnhof!
Ursprünglich wolltest Du eine Spalte löschen, wenn in der ersten Zeile ein Wert steht, den Du aus einer anderen Tabelle holst.
Jetzt gibt es nur noch eine Tabelle(3).Bereich(A1:A68), die mit Werten aus Tabelle(1und2).Bereich(A1:IV264) verglichen werden soll. Irgendwas hakt hier!

Gruß
Peter

Re: Spalten löschen, wenn Spal
19.08.2002 21:16:08
bastian
Hi Peter !

Entschuldige, ich habe mich schlecht ausgedrückt, Du hattest mich aber richtig verstanden: Ich will aus einer Tabelle (Tabelle1) jede Spalte löschen, in welcher in Zeile 1 ein Wert steht, der in einem bestimmten Bereich in Tabelle3 (A1:A68) vorkommt.

In Tabelle1 müssen die Spalten A bis IV oder 1 bis 256 überprüft werden.

Gruss & Dank: Bastian

Anzeige
Re: Spalten löschen, wenn Spal
19.08.2002 21:34:50
PeterW
Hallo Bastian,

folgendes Gerippe sollte Dir helfen.

Gruß
Peter

Korrektur!!
19.08.2002 21:45:37
PeterW
Kleiner Fehler:

Dim iSuchZaehler As Byte ersetzen durch
Dim bSuchZaehler As Byte

sorry

Re: Korrektur!!
19.08.2002 22:00:54
bastian
Hi Peter,

ich habe es mal getestet, ich bekomme einen Laufzeitfehler '13', Typen unverträglich in folgender Zeile:

iSuchwert = Worksheets(3).Cells(bSuchZaehler, 1)

In der zwischenzeit habe ich auch etwas zurechtgeschrieben, daß klappt aber noch nicht 100%ig ... ich schicke es gleich rüber.

Gruss & vielen Dank für Deine Mühe, Bastian

Re: Korrektur!!
19.08.2002 22:03:53
L.Vira
ersetze As Byte durch As Integer, Byte geht von 0 bis 255
es gibt aber 256 Spalten!
Anzeige
Re: Korrektur!!
19.08.2002 22:05:34
PeterW
Hallo Bastian,

Laufzeitfehler Typen unverträglich läßt vermuten, dass Du im Suchbereich eventuell etwas anderes als Integer-Zahlen stehen hast. Hatte doch geschrieben: ist nur ein "Gerippe". ;)

Gruß
Peter

Re: Korrektur!!
19.08.2002 22:09:23
PeterW
Hallo L.Vira,

wohl eher nicht,

bSuchZaehler geht nur von 1 bis 68 also reicht Byte vollkommen aus.

Gruß
Peter

Re: Korrektur!!
19.08.2002 22:22:41
L.Vira
Pfui über mein Haupt!
Re: Korrektur!!
19.08.2002 22:33:01
bastian
Hi Peter,

Dein makro läuft, macht noch nicht ganz was es soll, aber auf jeden Fall vielen Dank. Hier meine bisherige Lösung, die schon tut was sie soll, aber leider noch mehr ... es werden zu viele Spalten gelöscht:

Sub Makro2()

Dim werte As range, sName As String, suchCell As range

Set werte = Worksheets("tats. Merkmale").range("A1:A68")

For n = 1 To 255 Step 1
range("A1").Select
ActiveCell.Offset(0, n).range("A1").Select
sName = ActiveCell.Value
Set suchCell = ActiveCell.Find(What:="sName", LookIn:=xlValues, LookAt:=xlWhole)
If suchCell Is Nothing Then Columns(n).EntireColumn.Delete (xlShiftToLeft)

Next

End Sub

Gruss Bastian

Anzeige
Re: Korrektur!!
20.08.2002 09:02:49
bastian
Hi Peter,

nach etwas Nachdenken habe ich gestern abend noch eine funktionierende Lösung gefunden, vielleicht nicht die schönste, aber es geht, man muss nur am Ende noch eine Zeile löschen:

Sub Spalte_finden_und_löschen()
Dim iSuchwert As String
Dim iCellValue As String
Dim iTestValue As String
Dim b As Integer 'SuchZaehler
Dim i As Integer 'Loeschzaehler

'Erstmal finden und markieren
i = 1
b = 1

Do While i <= 42
Do While b <= 8
iCellValue = Worksheets(1).Cells(1, i).Value
iSuchwert = Worksheets(3).Cells(b, 1).Value
If iCellValue = iSuchwert Then
i = i + 1
Exit Do
Else
b = b + 1
End If
Loop
If b = 9 Then
Worksheets(1).Cells(2, i).Value = "Gelöscht"
' Worksheets(1).Columns(i).Delete
i = i + 1
b = 1
End If
Loop


'Dann löschen ...
i = 1
b = 1

Do While i <= 42
iTestValue = Worksheets(1).Cells(2, i).Value
iSuchwert = "Gelöscht"
If iTestValue = iSuchwert Then
Worksheets(1).Columns(i).Delete
'i = i + 1
'Exit Do
Else
i = i + 1
End If
Loop
End Sub

Gruss,

Bastian

Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige