Dim.Reichart
XLDnaute Occasionnel
Bonjour,
Je débute en VBA (j'ai commencé ce matin, merci à l'enregistrement auto de macro), mais la j'ai du mal.
Donc, je vous explique:
-En AF4, j'ai une liste déroulante de mois de l'année
-En AJ4, une liste déroulante des années
-Sur G9:AN16, un tableau de planning, la ligne 16 est celle des totaux
-le nom de l'agent en M6
Donc, voici ce que j'ai pour l'instant:
	
	
	
	
	
		
Le bouton doit
-imprimer le planning en PDF (plus les fioritures autour, la plage est plus large, c'est normal), nommé "Pointage Mois Année Agent"
-créer un lien vers le PDF imprimé en E3, ou dessous si la cellule est pleine
-copier le planning du mois en dessous, en laissant une ligne vide,
-copier le mois et l'année sur la case équivalente à g9 à l'emplacement de copie
-vider le tableau, sur G11:AN15, AF4 et AJ4
Alors d'une part, je pense qu'il y a pas mal d'erreurs dans mon code, mais surtout, il ne veut pas valider l'hyperlien vers le PDF, il me donne une erreur "erreur de compilation. Attendu: expression"... autant dire que c'est du chinois pour moi à l'heure actuelle...
Dans un monde parfait, le PDF serait créé dans un dossier portant le nom de l'année concernée, et un sous dossier avec le nom de l'agent.
Voila, je pense n'avoir rien oublié, je vous remercie d'avance pour toute aide, explication ou autre forme d'empathie à l'égard de mon soucis...
	
		
			
		
		
	
				
			Je débute en VBA (j'ai commencé ce matin, merci à l'enregistrement auto de macro), mais la j'ai du mal.
Donc, je vous explique:
-En AF4, j'ai une liste déroulante de mois de l'année
-En AJ4, une liste déroulante des années
-Sur G9:AN16, un tableau de planning, la ligne 16 est celle des totaux
-le nom de l'agent en M6
Donc, voici ce que j'ai pour l'instant:
		VB:
	
	
	Private Sub CommandButton1_Click()
'
' Imprimer_pointage Macro
'
'
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    Application.PrintCommunication = True
    ActiveSheet.PageSetup.PrintArea = "$G$1:$AN$16"
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.708661417322835)
        .RightMargin = Application.InchesToPoints(0.708661417322835)
        .TopMargin = Application.InchesToPoints(0.748031496062992)
        .BottomMargin = Application.InchesToPoints(0.748031496062992)
        .HeaderMargin = Application.InchesToPoints(0.31496062992126)
        .FooterMargin = Application.InchesToPoints(0.31496062992126)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .PrintQuality = 600
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
    Application.PrintCommunication = True
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
Range("E3").Select
    ActiveSheet.Hyperlinks.Add Anchor:=cells.Find("","e3",,,xlbycolumns,xlNext,,,), Address:= _
        "Pointage%20"& aj4 &af4 &m6& ".pdf", TextToDisplay:= _
        "Pointage " &aj4& " " &af4& " " &m6
       
Dim lig As Long, haut As Long
lig = Range("g" & Rows.Count).End(xlUp).Row + 4
haut = Cells.Find("", "g9", xlByColumns, xlNext)
    Range("G9:AN" & haut).Select
    Selection.Copy
    Range("G" & lig).Select
    ActiveSheet.Paste
    ActiveCell.FormulaR1C1 = af4 & aj4
    Range("G11:AN15,AF4,AJ4").Select
    Selection.ClearContents
   
End Sub
	Le bouton doit
-imprimer le planning en PDF (plus les fioritures autour, la plage est plus large, c'est normal), nommé "Pointage Mois Année Agent"
-créer un lien vers le PDF imprimé en E3, ou dessous si la cellule est pleine
-copier le planning du mois en dessous, en laissant une ligne vide,
-copier le mois et l'année sur la case équivalente à g9 à l'emplacement de copie
-vider le tableau, sur G11:AN15, AF4 et AJ4
Alors d'une part, je pense qu'il y a pas mal d'erreurs dans mon code, mais surtout, il ne veut pas valider l'hyperlien vers le PDF, il me donne une erreur "erreur de compilation. Attendu: expression"... autant dire que c'est du chinois pour moi à l'heure actuelle...
Dans un monde parfait, le PDF serait créé dans un dossier portant le nom de l'année concernée, et un sous dossier avec le nom de l'agent.
Voila, je pense n'avoir rien oublié, je vous remercie d'avance pour toute aide, explication ou autre forme d'empathie à l'égard de mon soucis...
			
				Dernière édition: