Zoom automatique

Résolu
mijean94 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention   -  
mijean94 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Pour faire un zoom sur une zone d’un tableau peut-on remplacer les cellules B8 :C10, dans l’exemple ci-dessous, par un nom de variable qui contiendrait ces paramètres, par exemple par PLAGES

Range("B8:C10").Select
ActiveWindow.zoom = True

cordialement

6 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonsoir

    En mettant par exemple la plage en B1 : B8:C10, en nommant cette cellule PLAGE et en modifiant ainsi la macro :
    Range(Range("PLAGE")).Select
     ActiveWindow.Zoom = True


    Cdlmnt
    Via
    0
  2. mijean94 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention   11
     
    Bonjour,

    La solution de VIA55 (1) marche nickel avec les coordonnées dans une cellule. Merci

    J’ai fait un essai en adaptant cette solution dans ma macro, et ça ne marche pas, y a-t-il une modification à apporter ? Merci pour vos réponses.

    Voici les codes que j’ai utilisés :

    Const plage = "C12:K21"

    Sub Macro3()
    range(range("plage")).Select
    ActiveWindow.zoom = True

    End Sub

    Cordialement
    0
  3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Re

    Si la plage est une constante plage définie dans la macro le code est alors simplement :
    Sub Macro3()
    Range(plage).Select
     ActiveWindow.Zoom = True
    End Sub


    Cdlmnt
    Via

    "L'imagination est plus importante que le savoir."    A. Einstein
    0
  4. mijean94 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention   11
     
    ça marche très bien. merci

    et dans le cas ou le résultat est :

    Set plage = range(Cells(premlig, premcol), Cells(derlig, dercol))

    cordialement
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Re,

    Dans ce cas la variable plage récupère les données dans une cellule dont tu as indiqué les coordonnées il doit donc y avoir dans cette cellule par ex C12:K21) et on retombe dans le cas de la 1ere macro que je t'avais indiqué

    Cdlmnt
    0
    1. mijean94 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention   11
       
      J'ai ajouter le code dan une fonction que m'avais donnée CCM81 mais ça ne marche pas :
      peut-être que je 'ai pas bien compris tes explications.


      Sub zoom()
      ' zoom Macro
      Dim derlig As Long, dercol As Long, plage As range
      Dim premlig As Long, premcol As Long
      derlig = Cells.Find("*", , , , xlByRows, xlPrevious).Row
      premlig = Cells.Find("*", , , , xlByRows, xlNext).Row
      dercol = Cells.Find("*", , , , xlByColumns, xlPrevious).Column
      premcol = Cells.Find("*", , , , xlByColumns, xlNext).Column
      Set plage = range(Cells(premlig, premcol), Cells(derlig, dercol))
      range(range("PLAGE")).Select
      ActiveWindow.zoom = True

      cordialement
      0
      1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > mijean94 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention  
         
        Non désolé c'est moi qui n'avais pas compris (j'aurais du!) que tu voulais définir la plage dans la macro
        Donc tu remplaces
        Set plage = range(Cells(premlig, premcol), Cells(derlig, dercol))
        range(range("PLAGE")).Select
        ActiveWindow.zoom = True

        simplement par
        Range(Cells(premlig, premcol), Cells(derlig, dercol)) Select
        ActiveWindow.zoom = True

        Cdlmnt
        0
  7. mijean94 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention   11
     
    Merci Via55, ça marche très bien.
    j'ai rajouté un point devant Select.

    Cordialement
    0