Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1552to1556
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

Spalte löschen nach Eingabe

Spalte löschen nach Eingabe
20.04.2017 15:55:33
Nati
Hallo zusammen,
ich habe einen Button im Sheet, beim klicken auf den Button soll man auswählen können´, welche Spalte gelöscht( d.h ausgeblendet! werden soll.
Hintergrund: Die Spalten sind verschiedene Prozessschritte, man kann spalten(Prozesse bereits hinzufügen(einblenden). in der oberen Zeile benennt man den Prozess.
Beispiel: Härten,waschen etc...
bei dem "Remove" button soll man nun auswählen können welcher Prozessschritt gelöscht(ausgeblendet) werden soll.
Mein Ansatz: (lauffähig)
' Makro für Button, der je nach Spaltenangabe Prozess löscht
Public Sub DeleteProcess()
Dim ws As Worksheet
Dim lspalte As String
Set ws = ThisWorkbook.Worksheets("Calculation")
With ws
lspalte = Application.InputBox("Bitte geben Sie die zu Löschende Spalte an", _
"Spalte Löschen")
If lspalte = "" Then
Exit Sub
End If
'Spalten G und H dürfen nicht gelöscht werden
If lspalte = "G" Or lspalte = "g" Or lspalte = "H" Or lspalte = "h" Then
MsgBox "Not permissibly - please enter another column.", vbInformation + vbOKOnly, " _
Information"
Exit Sub
End If
'Or lspalte = "H"
.Range(lspalte & 1).EntireColumn.Delete
End With
End Sub

Bei dieser Variante müssen aber die Spalten angegeben werden, am Ende sollen aber die Spaltennamen ausgeblendet werden.Vor allem wird dabei die Spalte gelöscht, aber sie soll nur ausgeblendet werden.
Hätte jemand dazu einen Vorschlag?
Ich bin auch offen für neue Vorschläge; Hauptsache man kann auswählen welche Spalte (prozess) gelöscht werden soll und dabei soll die Spalte ausgeblendet werden.
LG Nathalie

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte löschen nach Eingabe
20.04.2017 16:20:52
Michael
Hallo!
Dein Beitrag war (für mich) reichlich verwirrend, ich hoffe ich habe verstanden worum's Dir geht:
Sub a()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet: Set Ws = Wb.ActiveSheet
Dim f
f = Application.InputBox("Ausblenden von Spalte:", Type:=2)
If f = False Then
Exit Sub
Else:
On Error GoTo Hell
Ws.Range(UCase(f) & ":" & UCase(f)).EntireColumn.Hidden = True
Exit Sub
End If
Hell:
Err.Clear
MsgBox "Die eingegebene Spaltenbezeichnung existiert nicht!", vbCritical
End Sub
Dieser Code blendet auf dem aktiven Blatt jene Spalte aus, die zuvor in einem Eingabefeld angegeben wurde - bei einem Eingabefehler wird eine Meldung angezeigt, Abbrechen ist ohne Meldung möglich.
Passt?
LG
Michael
Anzeige
AW: Spalte löschen nach Eingabe
20.04.2017 16:31:16
Michael
Hallo!
Kleine Verbesserung und optimierte Fehlerbehandlung, damit auch noch falsch eingegebene Zahlen abgefangen werden:
Sub b()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet: Set Ws = Wb.ActiveSheet
Dim f
f = Application.InputBox("Ausblenden von Spalte:", Type:=2)
Select Case True
Case f = False: Exit Sub
Case IsNumeric(f)
MsgBox "Bitte Spalten mit Buchstaben angeben"
Exit Sub
Case Else
On Error GoTo Hell
Ws.Range(UCase(f) & ":" & UCase(f)).EntireColumn.Hidden = True
Exit Sub
End Select
Hell:
Err.Clear
MsgBox "Die eingegebene Spaltenbezeichnung existiert nicht!", vbCritical
End Sub
LG
Michael
Anzeige
AW: Spalte löschen nach Eingabe
20.04.2017 16:49:33
Nati
Hallo Michael,
vielen Dank das klappt wunderbar!, wie kann ich denn angeben, dass nur die Spalten ab Spalte H gelöscht werden können?
LG Nathalie
AW: Spalte löschen nach Eingabe
20.04.2017 17:15:34
Michael
Hallo!
Sub c()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet: Set Ws = Wb.ActiveSheet
Dim f
f = Application.InputBox("Ausblenden von Spalte:", Type:=2)
Select Case True
Case f = False: Exit Sub
Case IsNumeric(f)
MsgBox "Bitte Spalten mit Buchstaben angeben"
Exit Sub
Case Else
On Error GoTo Hell
If Ws.Range(UCase(f) & ":" & UCase(f)).Column 
Und nochmal: DU LÖSCHST NICHTS, es wird lediglich ausgeblendet!
LG
Michael
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige