[VBA] Coordonnées de cellule

Résolu
Bonjour,

j'ai fais un programme en vba qui me permets de créer un fichier avec 3 colonnes

col1 col2 col3

et ceux avec beaucoup de données,
Mon traitement s'effectue comme suit :

l'utilisateur séléctionne 3 plages de données (avec un bouton refedit) par exemple :

première plage = "B1:I1"
Dexuieme plage = "A2:A9"
la troisième = "B2:I9" ==> c'est la zone comprise entre la première et la deuxième plage.

j'aimerais améliorer mon traitement en supprimant le choix de la troisième plage...

Mon soucis pour l'heure est que je ne sais pas comment choisir une cellule en particulier dans une Range .... (cela pour utiliser "offset")

Merci d'avance

--
Google is your friend!

6 réponses

  1. Merci pour l'info j'ai deja quelque chose qui traite "Feuil1!$B$1:$I$1" en "B1:I1"
    0
    1. Bonjour,

      Les références données par Ref edit comporte des lettres et des $
      On peut donc en manipulant les chaines de caractères récupérer les references de lignes et de colonneset concatener pour obtenir celle de la nouvelle plage
      voilà la macro qui le fait :
      Sub references()
      a = "$B$1:$K$1"
      b = "$A$2:$A$9"
      ' suppression du 1er $
      aa = Right(a, Len(a) - 1)
      bb = Right(b, Len(b) - 1)
      ' ref colonne deb plage finale (B)
      r1 = Left(aa, 1)
      ' emplacements des : dans aa et bb
      dpa = InStr(1, aa, ":")
      dpb = InStr(1, bb, ":")
      ' emplacement du $ dans bb
      dolb = InStr(1, bb, "$")
      'ref ligne deb plage finale (2)
      r2 = Mid(bb, dolb + 1, dpb - dolb - 1)
      ' parties droites des chaines apres les : et le $
      aaa = Right(aa, Len(aa) - dpa - 1)
      bbb = Right(bb, Len(bb) - dpb - 1)
      ' emplacement du 2Nd $ dans les parties droites
      dolaaa = InStr(1, aaa, "$")
      dolbbb = InStr(1, bbb, "$")
      'ref colonne fin plage finale (K)
      r3 = Left(aaa, dolaaa - 1)
      'ref ligne fin plage finale
      r4 = Right(bbb, Len(bbb) - dolbbb)
      'concatenation des references
      plage = "$" & r1 & "$" & r2 & ":$" & r3 & "$" & r4
      End Sub

      Cdlmnt
      0
      1. Contributeur
        Bonjour à tous,

        Ben tu vois je pense avoir compris ta question mais ta réponse à une demande d'éclaircissement me dissuade de mettre ma proposition.
        Aller je t'aide un peu quand même, ça commence bien par :
        Set plage = plage2.Offset(...

        eric
        1
        1. Merci pour le début de réponse!
          sujet résolu
          0
      2. Pourquoi être aussi directe ?
        les intervenants (qui sont tous bénévoles, je te le rappelle), 
        je sais comment marche ce forum ?!
        Merci pour les précisions...
        0
        1. Contributeur
          Bonjour,
          Dans la grande majorité des cas, pas de réponse égale question imprécise ou mal formulée.
          De plus, les intervenants (qui sont tous bénévoles, je te le rappelle), sont souvent rebutés par un manque d'effort du questionneur.
          Merci de ta compréhension
          0