Supprimer une colonne selon une combobox

Imer2007

XLDnaute Occasionnel
Bonjour à tous,

Petit problème qui je suis sur ne vous rebutera pas.

Comment est il possible de supprimer une colonne en fonction d'une combobox.

Je sais le faire pour la suppression de ligne avec cette formule:
Nomdelafeuille.Rows(userform.combobox.ListIndex).Delete

Mais pour une colonne, j'ai essayé
Nomdelafeuille.Columns(userform.combobox.ListIndex).Delete

Et ca ne marche pas, ca me supprime la toute première colonne de ma feuille et non la colonne correspondant à la valeur du combobox.

Quelqu'un aurait-il une idée ?

D'avance merci !
 

Pierrot93

XLDnaute Barbatruc
Re : Supprimer une colonne selon une combobox

Bonjour,

essaye ainsi, à utiliser dans le module de l'usf :

Code:
If Me.ComboBox1.ListIndex <> -1 Then Nomdelafeuille.Columns(Me.ComboBox1.ListIndex + 1).Delete

bon après midi
@+
 

Imer2007

XLDnaute Occasionnel
Re : Supprimer une colonne selon une combobox

J'ai crié victoire trop tot car... ca m'efface bien les colonnes demandées sauf la dernière colonne !

Voilà le code que j'ai modifié uniquement sur le listindex.

Sheets("BAL").Select
If creabal.list_bal.ListIndex <> -1 Then
Feuil8.Columns(Me.list_bal.ListIndex + 2).Delete
End If

Question bête pourquoi -1 d'ailleurs ?
 

Pierrot93

XLDnaute Barbatruc
Re : Supprimer une colonne selon une combobox

Re,

Code:
ListIndex <> -1
si aucun élément de la combo n'est sélectionné, la valeur renvoyée par la combo est -1...

il faudrait voir les valeurs présentes dans ta combo, mais il y a sans doute lieu de réactualiser apès chaque suppression, à voir selon ton projet....
 

Imer2007

XLDnaute Occasionnel
Re : Supprimer une colonne selon une combobox

Ci dessous mon code que j'explique

Pour info
creabal : nom de mon userform
list_bal : combobox (liste déroulante)
listedyn_bal est une liste déroulante prise sur le modèle de Boisgontier
=DECALER(BDBAL!$A$2;;;NBVAL(BDBAL!$A:$A)-1)

Private Sub suppr_bal_Click()
On Error Resume Next
If list_bal.Value = "***" Then 'si la valeur est *** alors sortir
Exit Sub
End If

'Suppression dans la BD BAL
Feuil10.Rows(creabal.list_bal.ListIndex + 2).Delete
creabal.list_bal.RowSource = "listedyn_bal"

' et on trie dans la BD BAL
Range("a1:A50").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

'Suppression de la colonne dans la récap acces agents/BAL
' La premiere colonne a supprimer commence à C

Sheets("BAL").Select
If creabal.list_bal.ListIndex <> -1 Then
Feuil8.Columns(creabal.list_bal.ListIndex + 2).Delete
End If

MsgBox "La BAL a été supprimée"

'Tri dans la feuille BAL
Range("C1:Z150").Select
Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal

Sheets("Menu").Select

' On ferme le userform et on l'ouvre de nouveau

Unload Me
creabal.Show
End Sub
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Supprimer une colonne selon une combobox

Re,

si la première colonne à supprimer est la colonne C, modifie peut être ainsi :

Code:
Feuil8.Columns(creabal.list_bal.ListIndex + [B]3[/B]).Delete

il faut savoir que le 1er numéro d'index est le 0
 

Discussions similaires

Statistiques des forums

Discussions
312 393
Messages
2 087 964
Membres
103 687
dernier inscrit
olivier72