Aide macro selection

Fermé
scelera Messages postés 39 Date d'inscription lundi 10 juin 2013 Statut Membre Dernière intervention 3 décembre 2021 - 7 févr. 2014 à 10:37
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 7 févr. 2014 à 17:30
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.
A voir également:

3 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 709
7 févr. 2014 à 10:42
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
scelera Messages postés 39 Date d'inscription lundi 10 juin 2013 Statut Membre Dernière intervention 3 décembre 2021
Modifié par scelera le 7/02/2014 à 10:57
Je vous ai répondu dans un nouveau commentaire.
0
scelera Messages postés 39 Date d'inscription lundi 10 juin 2013 Statut Membre Dernière intervention 3 décembre 2021
7 févr. 2014 à 10:56
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 709
7 févr. 2014 à 12:02
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
scelera Messages postés 39 Date d'inscription lundi 10 juin 2013 Statut Membre Dernière intervention 3 décembre 2021
7 févr. 2014 à 12:46
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 709
7 févr. 2014 à 17:30
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