Aide macro selection

scelera Messages postés 40 Statut Membre -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'ai crée une macro qui sélectionne des colonnes, puis les imprime. Le soucie c'est que parfois je dois imprimer 5 cellules comme je peux en imprimer 50. Existe t'il un moyen pour que la macro sélectionne automatiquement toutes les cellules à imprimer ce qui me permettrait à chaque fois d'éviter de définir la zone d'impression. Cordialement.

3 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Si tu pouvais nous mettre un exemple de structure des données, sans éléments personnels, se serait plus facile de t'aider.
    Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ et tu mets ici le lien obtenu.
    0
    1. scelera Messages postés 40 Statut Membre
       
      Je vous ai répondu dans un nouveau commentaire.
      0
  2. scelera Messages postés 40 Statut Membre
     
    http://cjoint.com/data3/3Bhk0noCgcu.htm

    http://cjoint.com/data3/3Bhk1k0Mbjm.htm

    La il y a ce que j'obtiens en effectuant ma macro. Le but de final de ma macro et d'imprimer ce document.
    Et donc je voudrai que ma macro reconnaisse automatiquement les cellules à imprimer à savoir 27 dans le premier exemple ou 7 dans le deuxième sans que je sois obliger à chaque fois de définir la zone d'impression.
    0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Tu redefines la zone d'impression dans ta macro :
    Dim lig As Long, col As Integer
    With ActiveSheet
    col = .UsedRange.Columns.Count
    lig = .UsedRange.Rows.Count
    .PageSetup.PrintArea = "$A$1:$" & Chr(col + 64) & "$" & lig
    End With
    0
    1. scelera Messages postés 40 Statut Membre
       
      Merci beaucoup cela marche désormais.
      Et j'ai juste une dernière question, est'il possible de faire la même chose mais cette fois ci pour mettre une bordure verticale noir entre chaque colonne ? En utilisant le m^me principe à savoir ne mettre une bordure que de A1 à A7 ou de A1 à A27.
      0
    2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      En utilisant le même principe :
      Dim lig As Long, col As Integer, idx As Integer
      With ActiveSheet
      col = .UsedRange.Columns.Count
      lig = .UsedRange.Rows.Count
      For idx = 1 To col
      With .Cells(1, 1).Offset(0, idx - 1).Resize(lig, 1).Borders(xlEdgeRight)
      .LineStyle = xlContinuous
      .ColorIndex = xlAutomatic
      .TintAndShade = 0
      .Weight = xlThick
      End With
      Next idx
      End With
      UsedRange présente la particularité qu'il ne tient pas compte des delete pendant la session et dans ce cas donc tu peux remplacer par ceci qui donne le même résultat.
              col = .Cells(1, 1).End(xlToRight).Column
      lig = .Cells(.Rows.Count, 1).End(xlUp).Row
      0