Impression - chaque option liste validation données dynamique
Résolu
Yrmouf
Messages postés
141
Statut
Membre
-
Yrmouf Messages postés 141 Statut Membre -
Yrmouf Messages postés 141 Statut Membre -
Bonjour à tous,
J'ai parcouru le web sans grand succès pour trouver une macro qui permette de lancer une impression en fonction d'une liste de validation de données dynamiques (ce doit être cela qui pose problème d'ailleurs!
Merci d'avance à celui qui pourra m'aider
Merci à ceux qui pourront m'aider
Bonne journée
J'ai parcouru le web sans grand succès pour trouver une macro qui permette de lancer une impression en fonction d'une liste de validation de données dynamiques (ce doit être cela qui pose problème d'ailleurs!
Merci d'avance à celui qui pourra m'aider
Sub PrintAll() Dim strValidationRange As String Dim rngValidation As Range Dim rngrotation As Range ' éteinte de la mise à jour de l'écran Application.ScreenUpdating = False ' Identification de la source de la donnée de validation (qui est dynamique : =DECALER(Feuil1!$G$2;0;0;NBVAL(feuil1!$G:$G);1) vu que la liste est amenée à être modifiée) strValidationRange = Range("L5").Validation.Formula1 ' Sélection de chaque choix de cellule de la liste (mais vu que la liste est dynamique et corresponds à une formule je crois que ça bloque le choix des cellules) For Each rngrotation In strValidationRange Range("L5").Value = rngrotation.Value 'impression de la page ActiveSheet.PrintOut Next Application.ScreenUpdating = True End Sub
Merci à ceux qui pourront m'aider
Bonne journée
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Impression - chaque option liste validation données dynamique
- Spouleur d'impression - Guide
- Fuite données maif - Guide
- Liste déroulante excel - Guide
- Impression livret a5 - Guide
- Tableau croisé dynamique - Guide
1 réponse
Bonjour,
Concernant l'utilisation des fonctions DECALER et NBVAL en VBA:
1- la fonction DECALER n'est pas disponible en tant que telle. Elle est remplacée par la propriété Offset d'un objet Range
2- La fonction NBVAL doit être traduite en VBA par COUNTA.
Votre formule n'est donc pas directement utilisable en l'état.
Ci-dessous les instructions que je vous conseille, avec récupération de la cellule de début à partir de votre formule :
Autre code possible plus proche de votre formule
Concernant l'utilisation des fonctions DECALER et NBVAL en VBA:
1- la fonction DECALER n'est pas disponible en tant que telle. Elle est remplacée par la propriété Offset d'un objet Range
2- La fonction NBVAL doit être traduite en VBA par COUNTA.
Votre formule n'est donc pas directement utilisable en l'état.
Ci-dessous les instructions que je vous conseille, avec récupération de la cellule de début à partir de votre formule :
--
Dim cell_début As Range, cell_fin As Range
Set cell_début = Range(Split(Split(Range("L5").Validation.Formula1, "(")(1), ";")(0))
Set cell_fin = cell_début.EntireColumn.Find("*", SearchDirection:=xlPrevious)
For Each rngrotation In Range(cell_début, cell_fin)
Autre code possible plus proche de votre formule
Dim cell_début As Range
Set cell_début = Range(Split(Split(Range("L5").Validation.Formula1, "(")(1), ";")(0))
Set strValidationRange = cell_début.Resize(Application.CountA(cell_début.EntireColumn))
For Each rngrotation In strValidationRange
Je n'ai pas très bien compris la fonction Split mais cela fonctionne bien!
Merci beaucoup :)
Bonne journée