VBA fonction offset, nombre de ligne dans une cellule

Résolu/Fermé
margir4233 Messages postés 67 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 22 février 2023 - 29 mai 2016 à 22:04
margir4233 Messages postés 67 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 22 février 2023 - 2 juin 2016 à 21:41
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 :)
A voir également:

2 réponses

ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
29 mai 2016 à 22:36
Bonjour

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

Cdlmnt
0
margir4233 Messages postés 67 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 22 février 2023
29 mai 2016 à 22:50
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!!
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 30/05/2016 à 16:22
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
0
margir4233 Messages postés 67 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 22 février 2023
2 juin 2016 à 21:41
Ahhh logique, merci ccm81
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
30 mai 2016 à 07:37
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

0