Supprimer des colonnes selon les checkbox cochées VBA
Résolu/Fermé
Lili!
Messages postés
1
Date d'inscription
vendredi 3 juin 2016
Statut
Membre
Dernière intervention
3 juin 2016
-
3 juin 2016 à 15:52
Lili! - 6 juin 2016 à 13:49
Lili! - 6 juin 2016 à 13:49
A voir également:
- Supprimer checkbox excel
- Supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Liste déroulante excel - Guide
- Formule excel - Guide
- Supprimer les doublons excel - Guide
6 réponses
Labdreun
Messages postés
12
Date d'inscription
vendredi 3 juin 2016
Statut
Membre
Dernière intervention
7 juin 2016
3 juin 2016 à 17:02
3 juin 2016 à 17:02
Bonjour,
oui mais quand tu en supprimes une, tout est recalculé dans >Excel
et ta colonne suivant la supprimé, était deux colonnes plus loin avant,
elle s'appelait Z, par exemple tu supprimes Y, elle devient Y...
c''est cà qui me gène:
Sheets("Feuil1").Columns(i).Delete
le i n'est plus le même après le premier delete, non ?
et si tu masques simplement ?
à mon avis
sinon il faut reconnaitre le nom de la colonne plutôt que son rang i
et bon WE...ça sent le repos !
oui mais quand tu en supprimes une, tout est recalculé dans >Excel
et ta colonne suivant la supprimé, était deux colonnes plus loin avant,
elle s'appelait Z, par exemple tu supprimes Y, elle devient Y...
c''est cà qui me gène:
Sheets("Feuil1").Columns(i).Delete
le i n'est plus le même après le premier delete, non ?
et si tu masques simplement ?
à mon avis
sinon il faut reconnaitre le nom de la colonne plutôt que son rang i
et bon WE...ça sent le repos !
Bonjour
je pense a un truc comme ça
A+
Maurice
je pense a un truc comme ça
Dim LastColumn As Long Private Sub UserForm_Initialize() Me.StartUpPosition = 2 CommandButton2.Caption = "Supprimer" Me.Caption = "Compteurs" Frame1.Caption = "Compteurs" With Me.Frame1 .ScrollBars = fmScrollBarsVertical .ScrollHeight = .InsideHeight * 10 .ScrollWidth = .InsideWidth * 9 End With Dim i As Long Dim Cpt As Control LastColumn = Sheets("Feuil1").Cells(1, 200).End(xlToLeft).Column For i = 2 To LastColumn Set Cpt = Frame1.Controls.Add("Forms.CheckBox.1", "CheckBox" & i) Cpt.Caption = Sheets("Feuil1").Cells(1, i).Value Cpt.Left = 5 Cpt.Top = 5 + ((i - 1) * 20) Cpt.Width = 120 Cpt.Height = 15 Next i End Sub Private Sub CommandButton2_Click() Dim C As Long For C = LastColumn To 2 Step -1 If Controls("CheckBox" & C).Value = True Then Sheets("Feuil1").Columns(C).Delete End If Next End Sub
A+
Maurice
Merci pour vos réponses,
Maurice j'ai essayé ton code, rien ne se passe.
Labdreun j'ai fait en masquant les colonnes mais j'ai un problème pour la dernière colonne. Je ne sais pas pourquoi quand je coche la dernière checkbox qui devrait me masquait la dernière colonne, cela me masque la première. Pourtant il n'y a aucune checkbox qui doit correspondre à la première colonne !
Maurice j'ai essayé ton code, rien ne se passe.
Labdreun j'ai fait en masquant les colonnes mais j'ai un problème pour la dernière colonne. Je ne sais pas pourquoi quand je coche la dernière checkbox qui devrait me masquait la dernière colonne, cela me masque la première. Pourtant il n'y a aucune checkbox qui doit correspondre à la première colonne !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
6 juin 2016 à 12:10
6 juin 2016 à 12:10
Bonjour
si tes chekbox renvoie le nom de la colonne, utilise peut-^tre la fonction Find qui te donnera le numéro de la colonne..
col=rows(1).find(nomdelacolonne,Range("A1"),xlvalues).column
si tes chekbox renvoie le nom de la colonne, utilise peut-^tre la fonction Find qui te donnera le numéro de la colonne..
col=rows(1).find(nomdelacolonne,Range("A1"),xlvalues).column