Macro: création de fichier selon modèle avec listes de validation qui sautent

titiborregan5

XLDnaute Accro
Bonjour à tous,

c'est toujours sur le même fichier que pour les liens hypertextes (https://www.excel-downloads.com/threads/liens-hypertexte-internes-et-envoi-par-mail.213405/) mais cette fois c'est sur les listes de validation.

J'ai une feuille modèle que je copie dans un nouveau fichier autant de fois qu'il y a d'agents dans le service concerné.
Cette feuille modèle (qui varie selon le service) comporte des listes de validation (3! 1 pour la ligne 15, 1 pour la colonne A et 1 pour le croisement des données-valeurs) qui ne fonctionnent plus lorsque je crée mon fichier par service.
Je me suis dit, "ah je n'ai pas mis la feuille listes qui comporte toutes ces listes nommées du coup ça doit venir de là", mais non dès lors que j'envoie par mail le fichier les listes ne marchent plus...

Avez-vous une idée?
Dois-je rajouter à mon code une ligne pour recréer les listes sur chaque feuille du nouveau fichier?
Faire autrement??

Merci d'avance,

Je joins un fichier exemple!

Tibo
 

Pièces jointes

  • anonyme pb macro.xls
    345.5 KB · Affichages: 63
Dernière édition:

sousou

XLDnaute Barbatruc
Re : Macro: création de fichier selon modèle avec listes de validation qui sautent

Bonjour
Pour moi génère tes liste de validations en les nommant
définir nom liste1=......
ensuite dans validation définit liste1 à la place de la zone
il faut en plus avoir la feuille liste dans le nouveau classeur
A tester
 

titiborregan5

XLDnaute Accro
Re : Macro: création de fichier selon modèle avec listes de validation qui sautent

Bonjour sousou,
merci de ta réponse.

Pour moi génère tes liste de validations en les nommant
définir nom liste1=......
ensuite dans validation définit liste1 à la place de la zone

je fais ça dans le nouveau classeur, pour chaque feuille?
je vais voir comment écrire le code vba!
 

sousou

XLDnaute Barbatruc
Re : Macro: création de fichier selon modèle avec listes de validation qui sautent

Non
Erreur
En regardant un peu plus, tu fait correctement tes listes de validations, mais dans l'exemple tu utilises modèles autres et là il n'y a pas de liste...
Essaye en remplacant dans la feuille agent ac par DSI dans l'unité
 

titiborregan5

XLDnaute Accro
Re : Macro: création de fichier selon modèle avec listes de validation qui sautent

Lorsque je veux remettre mes nouvelles listes de validation dans mon nouveau fichier ça me génère une erreur d'exécution 1004 "Erreur définie par l'application ou par l'objet" et me surligne la ligne :
VB:
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=Pourcentages"

Je pense que l'erreur vient du nom de ma liste car même lorsque je veux le faire manuellement, il m'indique que ma liste ne peut être sur une autre feuille ou un autre classeur...
 

titiborregan5

XLDnaute Accro
Re : Macro: création de fichier selon modèle avec listes de validation qui sautent

Oui j'ai une plage nommée... la création de la liste de validation ne se fait pas à cause de ce message d'erreur...

comme tout se fait par macro je ne comprends pas où ça beug... je vais continuer à y réfléchir...

Pour toi sousou, tout semble correct?
Je pense reprendre ma feuille sans plage nommée ni liste de validation et les créer via la macro plutôt que des les "exporter" pour les modifier ensuite!!

ENcore merci pour tes réponses!!!

Suite ce soir ou demain!!!
 

titiborregan5

XLDnaute Accro
Re : Macro: création de fichier selon modèle avec listes de validation qui sautent

sur le nouveau fichier créé la liste apparaît? chez moi une fois qu'il est refermé il me semble qu'elles n'apparaissent plus... je vérifierai ça demain...

Je n'ai en effet pas mis mes ajouts car sans succès...
Et parfois, lorsque les listes restent, si j'envoie le fichier par mail elles n'y sont plus...

Encore merci
 

titiborregan5

XLDnaute Accro
Re : Macro: création de fichier selon modèle avec listes de validation qui sautent

Rebonjour,

pour faire "simple" j'ai ajouté les 2 codes suivants (en réalité j'en aurais 4 ou 5 à faire car les listes changent) et ça a l'air de marcher lorsque je les envoie par mail.
Pour appeler ces codes je passe par un simple select case call...


VB:
Sub Modèle_Autres()
With ActiveWorkbook
.Sheets("listes").Range("b1:b46").Name = "act"
'For s = 2 To ActiveWorkbook.Sheets.Count - 1
    With .ActiveSheet.Range("a17:a26").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=act"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
'Next
End With

End Sub
Sub Modèle()
With ActiveWorkbook
.Sheets("listes").Range("b1:b46").Name = "act"
.Sheets("listes").Range("v1:v1540").Name = "ress"
.Sheets("listes").Range("z2:z22").Name = "pourc"

'For s = 2 To ActiveWorkbook.Sheets.Count - 1
    With .ActiveSheet.Range("a17:a26").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=act"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
    
    With .ActiveSheet.Range("d15:m15").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=ress"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

    With .ActiveSheet.Range("c17:m26").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=pourc"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

'Next
End With

End Sub

Maintenant reste problème du recherchev qui pointe vers la feuille liste du fichier d'origine, mais en fait, je crois que je viens de trouver en écrivant mon message... je vais essayer de le faire pointer vers mon nom de plage...

Je vous tiens au courant...
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 892
Membres
101 831
dernier inscrit
gillec