VBA Range et Variable [Résolu/Fermé]

Signaler
Messages postés
13
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
18 septembre 2012
-
Messages postés
146
Date d'inscription
jeudi 26 mars 2009
Statut
Membre
Dernière intervention
3 novembre 2020
-
Bonjour,
j'ai un petit souci dans une macro j'ai une plage de selectionné comme ceci : Range("A8:R8,A5:R5").Select

en sachant que la valeur 8 contenu dans A8:R8 peut changer j'ai cette valeur dans la cellule F3, mais je n'y arrive pas, a l'aide si quelqu'un peu m'aider. j'ai beau regarder partout essayer des bout de code, rien de rien

Merci.

5 réponses

Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 154
Bonjour,

Essaie avec ça:

Dim lig As Long

lig = Clng(Range("F3").Value)

Range("A" & lig & ":R" & lig & ",A5:R5").Select 

;o)
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
13
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
18 septembre 2012

Merci beaucoup Polux 31, cela fonctionne toutefois il me reste une derniere question, j'ai quasiment le même probleme dans une autre cellule :

ActiveChart.PivotLayout.PivotTable.PivotFields("Client").CurrentPage = _
("nom1")

nom1 correspond cette fois a un nom variable qui se trouve en D3. je me suis inspiré de ton code mais je pense que cela differe du fait que ce n'est plus numerique...

A tu une idée? en tout les cas merci encore de m'avoir aidé.

Cordialement.
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 154
Tu veux dire que la cellule D3 contient une chaine de caractères et non une valeur numérique ?

Si c'est le cas il faut juste faire:

ActiveChart.PivotLayout.PivotTable.PivotFields("Client").CurrentPage = _
CStr(Range("D3").Value)

La fonction CStr() convertit la variable en chaîne de caractère. Par exemple, si D3 contient un code postal : 02150

cp = Range("D3").Value

cp = 2150


Ou

cp = CStr(Range("D3").Value)

cp = "02150" 


;o)
Messages postés
13
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
18 septembre 2012

Merci beaucoup polux 31 , tu est trop fort !!! lol
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 154
Ben non, pas trop fort ... juste que je sais comment faire.

;o)
Messages postés
146
Date d'inscription
jeudi 26 mars 2009
Statut
Membre
Dernière intervention
3 novembre 2020
12
Bonjour Polux31,

Une question dans le même sujet STP :
Si j'ai :
l1=1
c2=40
l2=1
c2=500

et que au contraire je veux que :
l1= Évolue chaque mois
c2=Évolue chaque mois
l2=Évolue chaque mois
c2=Évolue chaque mois

Comment peut on faire sans obliger l'utilisateur à renseigner un inputBox ?