Macro Excel..help

Résolu
Bonjour,

Quelle commande utiliser dans une macro Excel pour activer une selection jusqu'a la derniere info saisie ?

J'ai des infos dans les colonnes de A a M, mais je souhaite selectionner uniquement de A a F - le probleme est que le nombre de lignes a selectionner est variable.

J'ai trouvé une piste avec la commande LastRecord mais je ne suis pas parvenu a l'utiliser.

Merci d'avance
--

Et c'est en sciant que Leonard devint scie
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. Contributeur
    Bonjour

    Si tu ne sais pas quelle colonne ( A à F) sera la + longue:
    lig = Range("A1:F65536").Find("*", , xlFormulas, , , xlPrevious).Row
    cette formule tient compte d'une cellule avec comme résultat de formule ""

    si tu connais la colonne par ex: E
    lig=range("E65536").end(xlup).row
    0
    1. Bonjour et merci du coup de main.

      En fait, je recois des fichiers qui ont toujours le meme formatage mais différentes longueurs.

      Je veux selectionner toujours les memes colonnes, mais c'est le nombre de lignes qui change.

      Je ne veux selectionner que les lignes avec données en commencant par la ligne 2 (donc de A2 jusqu'a F??)
      0
    2. Contributeur
      @PlanetGongRe, Bonjour gb

      lig = Range("A2:F65536").Find("*", , , , , xlPrevious).Row

      donne la ligne de la dernière donnée en ignorant le résultat de formules renvoyant la valeur ""
      0
    3. @michel_mJe vais essayer...

      Quelle est ensuite la commande pour selectionner ? Range="A2:F") & lig).Select ???

      Désolé si cela parait stupide mais je débute avec les macro et je me suis attaqué a un projet qui prend plus d'ampleur que je ne pensais !
      0
    4. Contributeur
      @PlanetGongre

      On a tous débuté un jour! donc, ne culpabilise surtout pas.

      OK, je ne t'avais pas donné la solution jusqu'au bout!...
      essaies:

      Sub ccm_zonevariable()
      Dim fin As String
      fin = Range("A2:F65536").Find("*", , , , , xlPrevious).Address
      Range("A2:" & fin).Select
      End Sub

      0
    5. @michel_mSalut,

      Merci pour ton aide. J'ai finalement pu "bidouiller" avec tes conseils et j'ai réussi. Mon probleme était que les cellules de mes colonnes E & F contenaient une formule retournant "" et donc la macro ces cellules comme non "vide" et les selectionnait.
      Ca marche avec
      lig = Range ("A6000").End(xlup).Row
      Range ("A2:F" & lig).Select

      Merci encore...je poste une nouvelle question pour la suite de mon cauchemar !!!
      0
  2. Contributeur
    bonjour

    Tu peux le faire avec
    Cells(1, 1).Resize(UsedRange.Rows.Count, 6).Select

    Avec Cells(1, 1) tu pars de A1 puis tu agrandis du nombre de lignes utilisées et du nombre de colonnes 6 (F)
    0
    1. Salut et merci du coup de main.

      Comment le system trouveras la derniere ligne a selectionner ? C'est la seule variable des fichiers que je recois et je ne veux selectionner que les lignes contenant des données (donc de A2 a F??).

      0
    2. Merci a GBinforme,

      Super efficace.

      Bonne journée.
      0