VBA fonction offset, nombre de ligne dans une cellule [Résolu/Fermé]

Signaler
Messages postés
65
Date d'inscription
mardi 12 avril 2016
Statut
Membre
Dernière intervention
7 février 2018
-
Messages postés
65
Date d'inscription
mardi 12 avril 2016
Statut
Membre
Dernière intervention
7 février 2018
-
Bonjour,

Petite question (sûrement facile) pour vous.

En A8, j'ai un formule pour compter combien de produits j'ai pour un client
=NB.SI(ClientsProduits!$B$1:$B$423;$B$3)

J'aimerais récupérer ce nombre, qui varie d'un client à l'autre pour intégrer à mon code VBA.

En B11, j'ai le début d'une plage que je veux copier dans un autre classeur.

Je veux sélectionner B11 à D?
ou ? est le nombre contenu dans la cellule A8

Mon code VBA

ActiveSheet.Range("b11").Offset(?, 3).Select

Merci de votre aide :)

2 réponses

Messages postés
9523
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 juillet 2020
1 875
Bonjour

li = ActiveSheet.Range("A8").Value
ActiveSheet.Range("B11:D" & li).Select

Cdlmnt
Messages postés
65
Date d'inscription
mardi 12 avril 2016
Statut
Membre
Dernière intervention
7 février 2018

Très bizarre

Par exemple, dans ma cellule A8, le résultat me donne 5

La sélection selon le code ci-dessus donne 6 lignes vers le haut et non vers le bas

Si je change de client et que j'ai maintenant 1 dans A8, la sélection devient 11 lignes vers le haut...

Je n'y comprend rien!!
Messages postés
9523
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 juillet 2020
1 875
Je pense que j'ai mal compris la question : si dans A8 tu as le nombre de lignes vers le bas à partir de la ligne 11
li = ActiveSheet.Range("A8").Value
ActiveSheet.Range("B11:D" & 10+ li).Select

Cdlmnt
Messages postés
65
Date d'inscription
mardi 12 avril 2016
Statut
Membre
Dernière intervention
7 février 2018

Ahhh logique, merci ccm81
Messages postés
23417
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
6 août 2020
6 281
Bonjour,

Si c'est la plage que tu veux c'est .resize() qu'il te faut :
ActiveSheet.Range("b11").resize([A8])
Et si c'est pour faire .Copy pas besoin de faire .Select avant.
eric