Bonjour à tous,
J'ai une petite question qui est peut être toute simple mais je n'ai pas trouver la solution.
Voilà lorsque je cherche à faire une sélection d'une plage de cellules en VBA je passe presque toujours par une range("XX:XX"). Mais je trouve que ça ce complique bien plus lorsque je chercher a remplir l'intérieur de mon range avec l'adresse d'une cellule que je ne connais pas et que je recherche par sa valeur.
Je m'explique par exemple le tableau ci dessous :
J'ai une formule dans la case E2 et F2 que je veux recopier sur toutes les lignes de mon tableau. Si je connais mes colonnes et lignes je fais un truc très simple du genre :
Par contre si mes colonnes et me lignes ne sont pas fixes c'est plus compliqué et je passe par des find et end, ce qui me donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part .Range("E2:F2").Copy .Range("E3:F5486")
Dans le principe ça marche mais je trouve ça très compliqué à écrire et je me demande si il n'existe pas une solution plus simple pour faire une sélection d'une plage plutôt que de passer par un range avec les adresses des cellules ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 .Range(Replace(.Range("1:1").Find("Taux <8M").Offset(1, 0).Address, "$", "") & ":" & Replace(.Range("1:1").Find("Taux").Offset(1, 0).Address, "$", "")).Copy .Range(Replace(.Range("1:1").Find("Taux <8M").Offset(2, 0).Address, "$", "") & ":" & Split(.Range("1:1").Find("Taux").Address, "$")(1) & .Range("1:1").Find("code_insee").End(xlDown).Row).Paste
Un truc du genre :
Merci d'avance pour vos idées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part select .Range("1:1").Find("Taux <8M") to .Range("1:1").Find("code_insee").End(xlDown).offset(0,5)
Partager