séléction des colonnes pour imprimer

  • Initiateur de la discussion Initiateur de la discussion lesims1000
  • 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 !

L

lesims1000

Guest
bonjour, j'ai créer un tableau très simple pour le planing de fabrication de mon boulot,
j'aimerais pouvoir grace à une macro:

séléctioner la semaine (dans une boite boite de dialogue)
et que ensuite la mise en page de l'impression se fait en fonction des colonnes de la semaine selectionné et que toute les lignes de la semaine s'ajuste à une seul page.

PS: voici mon tableau

j'éspère avoir était relativement clair dans mes explications et que quelqu'un pourra m'aider !!

cordialement Marc.
 

Pièces jointes

Re : séléction des colonnes pour imprimer

Bonjour LeSims1000 🙂,
Voici déjà pour ton combobox :
Code:
Private Sub UserForm_Initialize()
Dim I As Integer
For I = 1 To 50 Step 5
ComboBox1.AddItem Cells(4, I)
Next I
End Sub
Par contre, une année faisant 52 semaines, la largeur de la feuille devrait faire 265 colonnes, or tu es limité à 255 (sauf si tu es en 2007). C'est peut-être un point à prendre en compte dès maintenant...
Bon courage 😎
 
Re : séléction des colonnes pour imprimer

Re 🙂,
Voila l'USF. Une fois que tu auras fini tes macros, tu pourras passer en For I = 1 To 265, mais tant que tu n'as pas finalisé le fichier, si tu veux que les gens qui ne sont pas en 2007 puisse te répondre, reste à 55...
Bon courage 😎
 

Pièces jointes

Re : séléction des colonnes pour imprimer

Bonjour 🙂,
Tu actives l'enregistreur de macro, tu sélectionnes la zone que tu veux imprimer, tu fait une impression, tu arrêtes l'enregistreur. Tu lis le code, tu remplaces la zone d'impression par la valeur de ton combobox, et hop là 😛...
Bon courage 😎
 
Re : séléction des colonnes pour imprimer

pff....j'y comprend rien, j'ai enregistré ma macro comme tu me l'a dit, voici se que sa donne:

Code:
Sub g()
'
' g Macro
'

'
    Range("F1:I54").Select
    Range("F54").Activate
    Selection.PrintOut Copies:=1
End Sub

j'ajoute quoi et ou ensuite ?🙁désolé pour l'amateurisme....
 
Re : séléction des colonnes pour imprimer

Re 🙂,
Effectivement, tu commences en VBA, et peut-être en Excel aussi 😉. Tu n'as pas défini ta zone d'impression...
Comme en plus, ton tableaux est en largeur et ne facilite pas le calcul des colonnes, j'ai pitié de toi. Voici ton fichier tel que je pense que tu le souhaites. N'hésite pas à décortiquer le code pour commencer à te mettre à VBA.
Bon courage 😎
 

Pièces jointes

Re : séléction des colonnes pour imprimer

merci, je voudrai juste changer une chose, c'est la zone d'impression, j'aimerai pouvoir imprimer 2 semaine en même temps et sur la même feuille c'est donc sur cette ligne de code que je dois changer quelques chose, mais je ne comprend pas la relation avec les colones:

Code:
PlageImpression = "$" & ConversionXC((CInt(Right(ComboBox1.Text, 2)) - 1) * 5 + 1) _
    & "$4:$" & ConversionXC((CInt(Right(ComboBox1.Text, 2)) - 1) * 5 + 4) & 60
 
Re : séléction des colonnes pour imprimer

on dirai que mon tableau n'a pas bien manger.... en revenant cet aprem pour finir de bosser dessus, je n'arrive plus à imprimer, quant je clique sur la macro pour imprimer un message d'erreur aparait:

Erreur de compilation:
variable non définie

et me surligne cette ligne dans le code de l'userform

Code:
Option Explicit

Private Sub CommandButton1_Click()
If ComboBox1 = "" Then Exit Sub
Dim PlageImpression As String
PlageImpression = "$" & ConversionXC((CInt(Right(ComboBox1.Text, 2)) - 1) * 5 + 1) _
    & "$4:$" & ConversionXC((CInt(Right(ComboBox1.Text, 2)) - 1) * 5 + 4) & 60
ActiveSheet.PageSetup.PrintArea = PlageImpression
ActiveSheet.PrintOut Copies:=1
Unload Me
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

[COLOR="Red"][B]Private Sub UserForm_Initialize()[/B][/COLOR]
Dim I As Integer
For I = 1 To 50 Step 5
ComboBox1.AddItem Cells(4, I)
Next I
End Sub

le code est pourtant identique à celui que tu m'a donné.
 
Re : séléction des colonnes pour imprimer

c'est bon, j'avais changer le combobox par un textbox ..... enfin !! j'ai fini par trouver tous seul cette fois, mais je suis toujours prenneur pour l'impression des 2 semaines en même temps....
 
Re : séléction des colonnes pour imprimer

bon... je me répond à moi même:

j'ai réussi à bidouiller (je dit bidouiller parce que tous ne marche pas....)

Code:
PlageImpression = "$" & ConversionXC((CInt(Right(ComboBox1.Text, 2)) - 1) * 5 - 5) _

j'ai changé se bout de code le dernier "5" de la ligne était un "2" à la base, j'ai trouvé cette valeur par tatonement et sans savoir se que sa voulais dire.
j'arrive à avoir 2 semaines par impression seulement certaines valeur bloque.

exemple quant je met "SEMAINE 21" dans userform, message d'erreur:

Erreur 1004
La formule contient une erreur
et la ligne est surligné :
Code:
ActiveSheet.PageSetup.PrintArea = PlageImpression

de plus avec ma façon quant je tape "SEMAINE 20" c'est la semaine 19 et 20 qui s'imprime, je voudrais avoir le contraire, en tapent "SEMAINE 20" avoir la semaine 20 et 21


voila ! en l'attente d'une réponse je vous souhaite une bonne fin de journée.
 
Re : séléction des colonnes pour imprimer

Re 🙂,
Désolé, mais vois-tu, beaucoup de "répondeurs" ont une vie en dehors d'XLD 😛... Ce n'est pas un service Hot Line gratuit, mais la bonne volonté, ET, la disponibilté (et évidement le bénévolat) des membres qui en fait sa qualité, et sa gratuité. Donc, étant professionnellement absent, je ne pouvais te répondre (je peux, et je pense que je ne suis pas le seul sur ce forum, être connecté sans pour autant disposer de temps pour répondre, voir aussi être sur le problème d'un autre, et du fait, prioriser mes réponses 😉.
Pressé par le temps, je n'ai pas eu le temps de détailler le code fourni :
Code:
Dim PlageImpression As String [COLOR=red]' Déclare une variable qui définira la zone d'impression[/COLOR]
PlageImpression = "$" & [COLOR=green]ConversionXC((CInt(Right(ComboBox1.Text, 2)) - 1) * 5 + 1)[/COLOR] _
    & "$4:$" & [COLOR=blue]ConversionXC((CInt(Right(ComboBox1.Text, 2)) - 1) * 5 [COLOR=red]+ 9[/COLOR])[/COLOR] & 60
[COLOR=red]' [COLOR=seagreen]Le vert [/COLOR]Signifie litéralement conversion de valeur nombre en valeur lettre[/COLOR]
[COLOR=#ff0000]' (petite fonction dévéloppée maison, mais il y a d'autre solutions...)[/COLOR]
[COLOR=#ff0000]' pour convertir en A la colonne 1 et AA la colonne 27, conversion en nombre (CInt)[/COLOR]
[COLOR=#ff0000]' de la partie droite sur 2 caractères (Right) de la valeur Texte du Combo,[/COLOR]
[COLOR=#ff0000]' -1 pour que semaine 1 signifie 0 multiplié par 5 car c'est l'écart entre[/COLOR]
[COLOR=#ff0000]' chaque tableau de semaine +1 car c'est le début du tableau[/COLOR]
[COLOR=#ff0000]' [COLOR=blue]le bleu[/COLOR] signifie la même chose avec la valeur +4 pour la dernière colonne du tableau[/COLOR]
[COLOR=#ff0000]' qu'il faut passer à[SIZE=4] [B][COLOR=blue]+9[/COLOR][/B][/SIZE] pour prendre les 2 semaines ensembles[/COLOR]
ActiveSheet.PageSetup.PrintArea = PlageImpression
[COLOR=red]' Utilise la variable String pour définir la zone d'impression[/COLOR]
[COLOR=#ff0000]' (seule zone imprimée)[/COLOR]
Maintenant, le combo box ne devrait te renvoyer que les semaines valides. Et pour pouvoir faire les 52 semaines, il te faudra enregistrer en format natif 2007 (en mode compatibilité, il bloque à 255 colonnes) et changer
Code:
For I = 1 To [COLOR=red]50[/COLOR] Step 5
par 265...
Bon courage 😎
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

I
Réponses
7
Affichages
2 K
desquiens.gabriel@hotmail
D
T
Réponses
2
Affichages
1 K
Tava94
T
C
Réponses
2
Affichages
843
cricric
C
D
Réponses
11
Affichages
2 K
D
Retour