VBA Range et Variable

Résolu/Fermé
freddv Messages postés 13 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 18 septembre 2012 - 14 oct. 2009 à 12:07
solidarinfo Messages postés 147 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 8 décembre 2021 - 4 août 2016 à 15:36
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

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
14 oct. 2009 à 13:26
Bonjour,

Essaie avec ça:

Dim lig As Long

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

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

;o)
1
freddv Messages postés 13 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 18 septembre 2012
14 oct. 2009 à 13:51
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.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
14 oct. 2009 à 14:40
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)
0
freddv Messages postés 13 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 18 septembre 2012
14 oct. 2009 à 15:06
Merci beaucoup polux 31 , tu est trop fort !!! lol
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
14 oct. 2009 à 15:24
Ben non, pas trop fort ... juste que je sais comment faire.

;o)
0
solidarinfo Messages postés 147 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 8 décembre 2021 13
4 août 2016 à 15:36
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 ?
0