Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Suprimer une colonne dans une zone nommé

  • Initiateur de la discussion Initiateur de la discussion zephir94
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

zephir94

XLDnaute Impliqué
Bonsoir à tous,

Je rencontre un problème et je ne trouve pas solution et j'aurais besoin de vos aides.
J'ai dans une feuille une zone nommé, je dois laisser la possibilité à l'utilisateur de pouvoir supprimer une colonne ( elle sont repérées par des numéros en ligne 6 ).
Pour cela à partir d'un Userform il rentre le numéro de la colonne.
Mon problème est que ma prog repère bien la dite colonne mais la sélection se fait sur toute la zone et non sur la colonne donc je ne peux pas supprimer !
Voici mon code.

Code:
 Private Sub CommandButton1_Click()

Dim a As Range
Dim i As Range
Val4 = TextBox1.Text
With Sheets("synoptique")
Set i = Rows(6).Find(Val4, LookIn:=xlValues, lookat:=xlWhole)
If i Is Nothing Then MsgBox (" L'item " & " " & Val4 & " " & "n'a pas été trouvé dans la listes formations "), vbExclamation: Exit Sub
If MsgBox("Etes-vous certain de vouloir supprimer l'item" & " " & Val4 & " " & "car toutes les données de la colonne seront détruites ?", vbYesNo, "Demande de confirmation") = vbYes Then
Columns(i.Column).Select




MsgBox "L'item" & " " & Val4 & " " & "a bien été effacé !"

Else
End If
End With
Unload Me

End Sub

Merci par avance pour vos aides

Zephir94
 
Re : Suprimer une colonne dans une zone nommé

J'aiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii trouvé,

Totalement illogique mais bon je dois masquer la colonne et ensuite l'effacer !

Voici mon code

Code:
 Private Sub CommandButton1_Click()

Dim a As Range
Dim i As Range
Dim b As Range

Val4 = TextBox1.Text

Set i = Rows(6).Find(Val4, LookIn:=xlValues, lookat:=xlWhole)
If i Is Nothing Then MsgBox (" L'item " & " " & Val4 & " " & "n'a pas été trouvé dans la listes formations "), vbExclamation: Exit Sub
If MsgBox("Etes-vous certain de vouloir supprimer l'item" & " " & Val4 & " " & "car toutes les données de la colonne seront détruites ?", vbYesNo, "Demande de confirmation") = vbYes Then
i.Select
e = i.EntireColumn.Address

Range(e).EntireColumn.Hidden = True
Range(e).EntireColumn.Delete
MsgBox "L'item" & " " & Val4 & " " & "a bien été effacé !"

Else
End If
Unload Me

End Sub

Un p'tit coup à boire pour fêter cela ?

Merci à vous deux
 
Re : Suprimer une colonne dans une zone nommé

Re

Zephyr94
Tu te compliques toujours la tâche 😉
Code:
Private Sub CommandButton1_Click()
Dim a As Range, i As Range, b As Range, Val4$
Val4 = TextBox1.Text
Set i = Rows(6).Find(Val4, LookIn:=xlValues, lookat:=xlWhole)
If i Is Nothing Then MsgBox (" L'item " & " " & Val4 & " " & "n'a pas été trouvé dans la listes formations "), vbExclamation: Exit Sub
If MsgBox("Etes-vous certain de vouloir supprimer l'item " & Val4 & _
        vbCrLf & " car toutes les données de la colonne seront détruites ?", _
        vbYesNo + vbExclamation, "Demande de confirmation") = vbYes Then
With i.EntireColumn
    .Hidden = True
    .Delete
End With
MsgBox "L'item" & " " & Val4 & " " & "a bien été effacé !"
Else
End If
Unload Me
End Sub
NB: Sur mon classeur de test, si je masque la colonne qui contient la valeur que je saisirai en TextBox1
la recherche n'aboutit pas
Donc normalement, cela devrait suffire aussi 😉
Code:
Private Sub CommandButton1_Click()
Dim a As Range, i As Range, b As Range, Val4$
Val4 = TextBox1.Text
ActiveSheet.Cells.Columns.Hidden = False
Set i = ActiveSheet.Rows(6).Find(Val4, LookIn:=xlValues, lookat:=xlWhole)
If i Is Nothing Then MsgBox (" L'item " & " " & Val4 & " " & "n'a pas été trouvé dans la listes formations "), vbExclamation: Exit Sub
If MsgBox("Etes-vous certain de vouloir supprimer l'item " & Val4 & _
        vbCrLf & " car toutes les données de la colonne seront détruites ?", _
        vbYesNo + vbExclamation, "Demande de confirmation") = vbYes Then
i.EntireColumn.Delete
MsgBox "L'item" & " " & Val4 & " " & "a bien été effacé !"
Else
End If
Unload Me
End Sub
 
Re : Suprimer une colonne dans une zone nommé

Suite...

Personnellement j'allégerai ton code en l'écrivant ainsi
Code:
Private Sub CommandButton1_Click()
Dim i As Range, Val4$: Val4 = TextBox1.Text
ActiveSheet.Cells.Columns.Hidden = False
Set i = ActiveSheet.Rows(6).Find(Val4, LookIn:=xlValues, lookat:=xlWhole)
Me.Hide
If i Is Nothing Then MsgBox " L'item " & Val4 & " n'a pas été trouvé dans la listes formations ", 48: Exit Sub
If MsgBox("Etes-vous certain de vouloir supprimer l'item " & Val4 & vbCrLf & _
        " car toutes les données de la colonne seront détruites ?", 52, _
        "Demande de confirmation") = vbYes Then
i.EntireColumn.Delete
Else
End If
MsgBox "L'item" & " " & Val4 & " " & "a bien été effacé !"
End Sub
NB: Tu remarqueras que les MsgBox se comportent différemment.
 
Re : Suprimer une colonne dans une zone nommé

re et re

Seule explication plausible que j'ai trouvée à ce jeu de cache-cache :

Staple, je pense que nous avons allègrement ramé dans cette galère car Zéphyr a oublié de nous souffler qu'il avait des cellules fusionnées*.

*je ne parle pas de relation fusionnelle
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
538
Réponses
5
Affichages
717
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…