VBA fonction offset, nombre de ligne dans une cellule

Résolu
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

  1. Bonjour

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

    Cdlmnt
    0
    1. 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
    2. 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
    3. Ahhh logique, merci ccm81
      0
  2. Contributeur
    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