Création d'une variable + utilsisation dans une autre macro

Bonsoir,

voici mon problème :

Dans le fichier joint, j'ai créé une macro nommée Enreg_pdf qui fonctionne mais j'aimerais amener une amélioration.

J'aimerais que la variable LeNumero s'adapter à la liste de numéro de comprise entre A2 et A11.

je m'explique.

Si A2 = 0 alors LeNuméro = 0

Si A3 = 0 Alors LeNumero = range("A2").value

Si A4 = 0 Alors LeNumero = range("A2").value & "N°" & range("A3").value

Si A5 = 0 Alors LeNumero = range("A2").value & "N°" & range("A3").value & "N°" & range("A4").value

.... jusqu'à A11

Merci par avance de l'aide.

9grorkal-1.xlsm (30.79 Ko)

bonsoir,

une proposition

Sub Enreg_Pdf()
    If Feuil1.Shapes("Check Box 12").ControlFormat.Value And Feuil1.Shapes("Check Box 16").ControlFormat.Value = xlOn Then
        Dim LaDate As String, LeParcours As String, LeRep As String, LeNumero As String
        LaDate = Format(Date, "dd.mm.yy")
        LeParcours = Range("E1").Value
        LeRep = ThisWorkbook.Path & "\07040220\"  ' à adapter
        LeNumero = numerodeserie
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                                        LeRep & "N°" & LeNumero & "-" & LeParcours & " du " & LaDate & ".pdf", Quality:= _
                                        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
                                        From:=1, To:=1, OpenAfterPublish:=False
    Else
        MsgBox "Tous les contrôles n'ont pas été réalisés", 0 + 48
    End If
End Sub
Function numerodeserie()
    If Range("A2").Value = 0 Then numerodeserie = 0: Exit Function
    ns = Range("A2").Value
    i = 3
    While Cells(i, 1) <> 0 Or i > 11
        ns = ns & "N°" & Cells(i, 1)
        i = i + 1
    Wend
    numerodeserie = ns
End Function

Bonjour,

Une fonction commence par Function.

Et c'est le nom de la fonction qui doit être utilisée pour le renvoi de la valeur qu'elle définit.

Function creationnumero()
    Dim i%
    For i = 11 To 2 Step -1
        If Cells(i, 1).Value > 0 Then
            creationnumero = Cells(i, 1).Value
            Exit Function
        End If
    Next i
    creationnumero = 0
End Function

Et dans ton code de création de PDF :

LeNumero = creationnumero()

NB- Si tu indentais ton code il serait plus facile à lire.

Il est toujours recommandé de placer les procédures Function dans un module après les déclarations de niveau module et avant les procédures Sub.

Cordialement

Ferrand

Re,

la macro fonctionne parfaitement.

Merci pour ton temps passé et ta réactivé.

Bonne soirée, voire nuit

Rechercher des sujets similaires à "creation variable utilsisation macro"