liste déroulante

A

andré

Guest
Salut à tous et bonne et heureuse année à tous ceux à qui je ne l'
 
A

andré

Guest
J'ai du taper sur une mauvaise touche, donc je recommence.

Salut à tous et bonne et heureuse année à tous ceux à qui je ne l'ai pas encore souhaitée.

Question peut-être idiote, mais je ne trouve pas la solution :
Dans un tableau comptable, j'emploie à divers endroits des listes de choix (par validation), des RechercheV, ...
A la cloture de chaque mois, je veux figer les données introduites de façon à ne plus pouvoir les modifier.
Le Copier / Coller Spécial Valeurs fonctionne, sauf pour les listes de validation.

Comment supprimer ces listes de choix dans les cellules de la plage sélectionnée tout en maintenant les valeurs qui y ont été introduites ?

Pas compliqué sans doute, mais je n'y arrive pas de façon simple.

André.
 
T

Ti

Guest
Salut André
voici une petite procédure qui te permettra de trouver - et supprimer - toutes les listes de validation dans la feuille et de les détruire.

Sub DetruitValidation()
Dim cel As Range
For Each cel In Feuil1.UsedRange.SpecialCells(xlCellTypeAllValidation)
If cel.Validation.Type = xlValidateList Then cel.Validation.Delete
Next cel
End Sub
 
A

andré

Guest
Salut Ti,

Heureux que tu sois là, alors profites-en car tes vacances sont bientôt finies (lol).

Je procédais de façon analogue, mais par macro enregistrée : je sélectionnais les listes par F5 / Cellules, puis je supprimais les listes par Validation.
Mais le" hic, c'est que toutes les listes sont sélectionnées, donc également supprimées, alors que je ne veux le faire que pour la partie de ma feuille préalablement sélectionnée.
En d'autres mots, je ne parviens pas à sélectionner dans une zone sélectionnée préalablement.
J'ai également cherché en essayant de mettre une sélection sur base du mois, mais je n'y suis pas parvenu.
Me connaissant, tu te doutes que j'essaie de le faire sans macro.

André.
 
@

@+Thierry

Guest
Bonjour André, Bonjour Ti

J'espère que tu as bien commencé ton année de boulot !! (moi, comme Ti suis encore en Wouacance !!!

Bon j'ai juste traité le code Ti pour qu'il corresponde à ta demande :

Option Explicit

Sub DetruitValidation_PlageDéfinie()
Dim cel As Range
Dim Maplage As Range
Set Maplage = Sheets(1).Range("a1:d20")
On Error GoTo Sortie
For Each cel In Maplage.SpecialCells(xlCellTypeAllValidation)
If cel.Validation.Type = xlValidateList Then cel.Validation.Delete
Next cel
Set Maplage = Nothing
Exit Sub
Sortie:
MsgBox "Il n'y avait pas de liste de validation dans la plage"
End Sub


Sub DetruitValidation_ActiveSelection()
Dim cel As Range
On Error GoTo Sortie
For Each cel In Selection.SpecialCells(xlCellTypeAllValidation)
If cel.Validation.Type = xlValidateList Then cel.Validation.Delete
Next cel
Sortie:
MsgBox "Il n'y avait pas de liste de validation dans la sélection"
End Sub


Le premier code agit directement sur une plage prédéfinie. Le second sur l'active Séléction... A toi de voir ce qui convient.

PS J'y ai ajouté un "Error Hnadler, car si il n'y a pas de liste de validation, celà retourne une erreur.

Bonne Journée
@+Thierry
 
@

@+Thierry

Guest
oups si tu utilise la macro de Active Sélection... j'ai zappé une ligne de code...

Sub DetruitValidation_ActiveSelection()
Dim cel As Range
On Error GoTo Sortie
For Each cel In Selection.SpecialCells(xlCellTypeAllValidation)
If cel.Validation.Type = xlValidateList Then cel.Validation.Delete
Next cel
Exit Sub
Sortie:
MsgBox "Il n'y avait pas de liste de validation dans la sélection"
End Sub

sinon tu auras tt le tmp le message !!!
 
@

@Christophe@

Guest
bonjour forum, bonjour Thierry,

Je vois que tu es deja fort actif ce matin, moi je recommce demain le boulot, arg

Je vais essaye de ne pas t'harcelé de question aujourh'dui, en tous cas je vous souhaite a toi et a tous le forum une bonne journée

Christophe
 
A

andré

Guest
Merci à tous, mais j'ai trouvé ce que je cherchais :

Je sélectionne les lignes dans lesquelles je veux supprimer la validation, puis par Validation / Liste, je supprime la validation (bouton inférieur gauche : Alles Wissen en ND).
C'est tout.

J'ai enregistré cette procédure sous une macro en y ajoutant un Copier/ Collage Spécial Valeurs de la plage sélectionnée.

André.
 

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 184
dernier inscrit
amiko