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'ai modifié ma réponse, j'ai créé un fichier test car mon fichier original est trop gros et il y a tellement de nom de partout que c'est trop lourd comme travail de le rendre anonyme !
J'arrive à sélectionner une cellule de la colonne à effacer sans que cela sélectionne la zone, maintenant connaissant une cellule d'une colonne il faut que je trouve le moyen de virer la colonne sans que cela sélectionne toute la zone !
J'espère que tu me comprend ?
 
Re : Suprimer une colonne dans une zone nommé

Re

Zephir94
J'ai modifié ma réponse, j'ai créé un fichier test car mon fichier original est trop gros et il y a tellement de nom de partout que c'est trop lourd comme travail de le rendre anonyme !
C'est ta question, ton problème.

C'est donc à toi de te donner les moyens (ou pas 😉) de fournir le plus d'éléments susceptibles d'aider à sa résolution, non ?


Sur ton fichier de test, sur ton fichier exemple, la syntaxe : i.EntireColumn.Delete
Une seule colonne est supprimée.

C'est donc ton fichier original qui a un problème.

A toi de voir.

NB: A vue de nez, je dirai qu'avec les outils* et fonctionnalités natives d'Excel (recopie vers le bas, rechercher/remplacer), il faut moins d'une 1/2 heure pour anonymiser un fichier. 😉

*: codes VBA créés pour l'occasion dont certains sont présents sur le forum
(J'ai d'ailleurs créé jadis un truc dédié à cette tâche dans le salon)
 
Re : Suprimer une colonne dans une zone nommé

J'ai un peu progressé en regardant comment l'enregistreur de macro fait, voici son code :

Code:
    Columns("AB:AB").Select
    Selection.Delete Shift:=xlToLeft

J'ai donc rechercher le nom de ma colonne comme ceci :

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
 Cells(10, i.Column).Select
e = i.Column
u = Split(Columns(e).Address(ColumnAbsolute:=False), ":")(1)


je bloque au niveau syntaxe, comment écrire avec ma variable u représentant le nom de la colonne sous forme

Columns("AB:AB").Select avec Columns(u:u).Select ?
Te remerciant par avance
 
Re : Suprimer une colonne dans une zone nommé

Re

Zephir94
Tu te compliqes la vie!
On a bonne syntaxe depuis le message #2 !
Regardes ce petit test ci-dessous
Code:
Sub zephir94()
Dim i As Range
Set i = Cells(6, Int(Rnd * 256) + 1)
MsgBox i.Address
MsgBox i.EntireColumn.Address
End Sub

Même si dans l'absolu je devrais plutôt utiliser un Range 🙄
Dans ton code tu utilises déjà un Range !
puisque on peut lire
Code:
Dim i As Range
Val4 = TextBox1.Text
With Sheets("synoptique")
Set i = Rows(6).Find(Val4, LookIn:=xlValues, lookat:=xlWhole)
 
Re : Suprimer une colonne dans une zone nommé

salut

avec le premier code donné repris en partie par Staple😀, il manquerait des . !
à tester
Code:
Private Sub CommandButton1_Click()
  Dim R As Range
  Val4 = TextBox1.Text
  With Sheets("synoptique")
    Set R = .Rows(6).Find(Val4, , , 1)
    If R Is Nothing Then MsgBox Val4 & " n'a pas été trouvé dans la listes formations !", 48, "": Exit Sub
     If MsgBox("Etes-vous certain de vouloir supprimer l'item " & Val4 & _
              " car toutes les données de la colonne seront détruites ?", 4, _
              "Demande de confirmation") = 7 Then Exit Sub
    .Columns(R.Column).Delete
    MsgBox "L'item " & Val4 & " a bien été effacé !", 64, "Pour confirmation ..."
  End With
 
Re : Suprimer une colonne dans une zone nommé

Bonjour Si...

Si...
AKA pourquoi .Columns(R.Column).Delete plutot que R.EntireColumn.Delete ? 😉


NB: Dans mes tests, j'avais ajouté le .
(et même avant les tests, cf le message #2 😉 )
 
Dernière édition:
Re : Suprimer une colonne dans une zone nommé

Re

Si...
Donc si j'ai bien compris, ta préférence syntaxique, sans sourciller, sans cynisme, sans signes ostentatoires ,ci-devant témoins, signe seulement ton gout, Si... ?
(oui je sais , anaphore laborieuse, mais pas mieux pour un dimanche, d'ailleurs est-ce bien une anaphore ?)

Et cette question restera à jamais irrésolue, générant chez moi un stress anorexigène puis une nuit agitée.

Pourtant c'est l'heure du manger, alors Si... pourquoi tu aimes Columns(R.Columns), hein ?
Dis , pourquoi, seteplé, Si... 😉
 
Dernière édition:
Re : Suprimer une colonne dans une zone nommé

re

avant que le vent de la révolte ne souffle😉

Re
Pourtant c'est l'heure du manger, alors Si... pourquoi tu aimes Columns(R.Columns), hein ?

Plutôt que d'anaphore, je préfère abuser de l'amphore, celle qui contient un bon remontant* !
Pour ta gouverne, ta conquête de la Toison d'or, je n'ai pas de préférence quand je delete.

Ici, je suis allé vers ce que Zéphyr m'a soufflé.
Tant qu'à faire -dans mes habitudes de limiter le cliquetis du clavier- je préfère la tienne (syntaxe, of course).

*A la tienne Staple - pour moi, c'est le moment de savourer un pousse au crime (eau de vie et parfois de mort).
 
Re : Suprimer une colonne dans une zone nommé

Re bonjour à vous deux,

Je ne veux pas créer une polémique mais je veux bien partager votre hydromel respectif lol
Bon je continu à chercher, j'arrive à masquer une colonne sur la zone sans que cette dernière soit sélectionnée !
mais toujours pas à la supprimer !

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
MsgBox "L'item" & " " & Val4 & " " & "a bien été effacé !"

Else
End If
Unload Me

End Sub

Je continu donc à chercher le pourquoi du comment
 
Dernière édition:
- 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
Retour