Zone d'impression variable sur les colonnes

  • Initiateur de la discussion Initiateur de la discussion Bikkette35
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Bikkette35

XLDnaute Nouveau
Bonjour à tous et au forum,

Je planche depuis quelques jours sur une macro et je ne trouve pas la solutions. Je m'explique :

J'ai une macro qui va chercher des noms en fonction de critères dans une autre feuille et les inscrit en d3 puis e3 ... Cette liste est donc variable. Mon but est d'imprimer mon tableau et donc de définir la zone d'impression en fonction du nombre de nom. Par exemple si j'ai 2 noms, le dernier nom sera en cellule e3 donc ma zone d'impression sera a1:e31.

Je pense qu'il faudrait utiliser les fonctions printarea et adress ensemble mais étant assez novice en vba, je ne vois pas comment je pourrais faire.

Merci d'avance.
 
Dernière édition:
Re : Zone d'impression variable sur les colonnes

Hello,

Je planche depuis quelques jours sur une macro...
Si tu veux plancher sur une macro faut mettre des roues 😀

Trêve de plaisanterie, mets un petit fichier joint déjà monté de ta part, avec les petites indications qu'il te faut et tu auras sûrement de l'aide.

Il y a plusieurs façons de faire, mais il nous faudrait un petit plus...

Cdt, Hulk.
 
Re : Zone d'impression variable sur les colonnes

Merci pour ta réponse. J'espère que j'ai bien réussi à joindre le fichier. Par contre, je n'ai pas de code pour cette macro car ils ne fonctionnaient pas donc je ne les ai pas gardé. Tu peux voir la macro qui ramène le nom en D3, E3, F3 etc,... Ma zone d'impression sera toujours la même en ligne, elle s'arrete ligne 31 (a la fin de mon tableau) mais en colonne, vu que le nombre de noms est variables, je voudrais que ma zone d'impression s'arrete au dernier nom (soit f3, soit r3, soit iv3, etc...)
 
Re : Zone d'impression variable sur les colonnes

Re Bikkette,

Euh non pas de fichier joint... il ne doit pas dépasser 48,8Ko !

Aussi, j'espère être en mesure de t'aider, ce n'est pas certain, mais tu auras plus mieux bien de l'aide.

Cdt, Hulk.
 
Re : Zone d'impression variable sur les colonnes

Le fichier est trop gros 303ko.

Je recapitule donc :

J'ai un tableau avec deux feuilles "tableau" et l'autre "base rh".
Dans ma base, j'ai plusieurs variables (matricule, nom, user, site, equipe)
Dans mon tableau, j'ai une liste déroulante en b1 avec tous les sites et en d1 avec toutes les equipes.
La macro suivante me permets de ramener tous les noms égaux au site et à l'équipe choisit. La macro insère tous les noms dans la première cellule vide après b3.

Sub conseiller()

Dim conseiller As String
Dim user As String
Dim site As Integer
Dim equipe As Integer
conseiller = 0
user = 0

Sheets("tableau").Activate
site = Range("b1").Value
equipe = Range("d1").Value
Range("d3:iv3").ClearContents
Range("d4:iv4").ClearContents

Sheets("base rh").Activate
Range("b2").Select

Do While ActiveCell <> ""

If site = ActiveCell.Offset(0, 2) And equipe = ActiveCell.Offset(0, 3) Then
conseiller = ActiveCell
user = ActiveCell.Offset(0, 1)

Sheets("tableau").Activate
Range("b3").End(xlToRight).Select
ActiveCell.Offset(0, 1).Select


ActiveCell = conseiller
ActiveCell.Offset(1, 0).Value = user

Sheets("base rh").Activate
End If


ActiveCell.Offset(1, 0).Select

Loop

Sheets("tableau").Activate
Range("a1").Select

End Sub

Pour la macro zone d'impression, je souhaite que ma zone d'impression commence en a1 et finisse en ?31. Le point d'intérogation étant la dernière colonne comportant un nom dans la ligne 3.
Le problème c'est que je n'arrivais pas à mettre une variable dans la fonction printarea.

J'espère que j'ai été clair en tout cas.
 
Re : Zone d'impression variable sur les colonnes

Voila le lien :

Cijoint.fr - Service gratuit de dépôt de fichiers

PS : J'ai fait des modifications pour la confidentialité en ne laissant que ce qui est nécéssaire.
 
Dernière édition:
Re : Zone d'impression variable sur les colonnes

Bon voilà ce que j'ai pu faire avec mes petites compétences en vb

Sub zone_imp()

Dim x As Integer

x = 3

Sheets("tableau").Activate
Range("d3").Select

Do While ActiveCell <> ""

If ActiveCell.Offset(0, 1) <> "" Then
x = x + 1
End If

Loop

zone_impression = "a1:?31"
'Voilà c 'est à ce niveau là que j'ai un problème, il faudrait définir la colonne
'avec le x qui est un nombre et c'est pour ça que j'ai penser à adress.

Range(zone_impression).Select
ActiveSheet.PageSetup.PrintArea = zone_impression


End Sub

Pourriez vous m'aidez à finaliser mon problème ? Y aurait il quelqu'un qui s'y connaisse plus que moi en vba ?
 
Re : Zone d'impression variable sur les colonnes

Bon bah j'ai résolu seul mon problème mais merci quand même à ceux qui m'ont aidé. Je vous mets ma solution si quelqu'un est intéressé par la suite.

Sub zone_imp()

Dim NumCol As Long

Sheets("tableau").Activate
Range("D3").Select
Selection.End(xlToRight).Select
NumCol = ActiveCell.Column
zone_impression = "a1:" & LettreColonne(NumCol) & "31"
Range(zone_impression).Select
ActiveSheet.PageSetup.PrintArea = zone_impression


End Sub

"J'ai trouvé cette fonction qui m'as bien aidé pour passer du numéro de la colonne à la lettre de la colonne
Function LettreColonne(NumCol As Long) As String
Dim reste, quotient As Long
quotient = Int(NumCol / 26)
reste = NumCol Mod 26
If quotient = 0 And reste = 0 Then
Exit Function
End If
If quotient = 0 Then
LettreColonne = Chr(64 + reste)
Else
If reste = 0 Then
quotient = quotient - 1
If quotient = 0 Then
LettreColonne = Chr(64 + 26)
Else
LettreColonne = Chr(64 + quotient) & Chr(64 + 26)
End If
Else
LettreColonne = Chr(64 + quotient) & Chr(64 + reste)
End If
End If
End Function

Merci encore.a+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
862
Réponses
7
Affichages
883
Compte Supprimé 979
C
Retour