IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

formulaire pour enregistrer en PDF


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 246
    Points : 85
    Points
    85
    Par défaut formulaire pour enregistrer en PDF
    Bjr,
    J'ai 12 feuilles dans mon classeur excel, j'ai créer un formulaire qui permet de choisir quelle(s) feuille(s) je veux enregistrer. Cela m'ouvre PDF, et je n'est plus qu'a donner un titre, et un lieu pour enregistrer. Mon problème c'est qu'il ne m'enregistre qu'une seule feuilles.
    Voici mon code, peut être il y a une erreur. Ou alors l'enregistrement en PDF de cette maniére n'est pas possible (avec plusieur feuilles).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Private Sub enregistrer_Click()
     
        If enr_janvier = True Then
            Sheets("Janv").Select
        End If
        If enr_fevrier = True Then
            Sheets("Fev").Select
        End If
        If enr_mars = True Then
            Sheets("Mars").Select
        End If
        If enr_avril = True Then
            Sheets("Avril").Select
        End If
        If enr_mai = True Then
            Sheets("Mai").Select
        End If
        If enr_juin = True Then
            Sheets("Juin").Select
        End If
        If enr_juillet = True Then
            Sheets("Juil").Select
        End If
        If enr_aout = True Then
            Sheets("Aout").Select
        End If
        If enr_septembre = True Then
            Sheets("Sept").Select
        End If
        If enr_octobre = True Then
            Sheets("Oct").Select
        End If
        If enr_novembre = True Then
            Sheets("Nov").Select
        End If
        If enr_decembre = True Then
            Sheets("Dec").Select
        End If
     
        Application.ActivePrinter = "PDFCreator sur Ne00:"
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
            "PDFCreator sur Ne00:", Collate:=True
        End
    End Sub

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Je ne sais pas si je comprends bien le pb mais pour sélectionner toutes tes feuilles, et si tu en as d'autres non concernées, tu peux peut-être utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(array("Janv", "Fev", "Mars", "Avril", "Mai", "Juin", ....).select
    Si toutes les feuilles sont concernées (pas d'autres feuilles dans le classeur) teste ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.sheets.select
    A+

    Edit
    En fin de sub, n'oublie pas de dissocier tes feuilles

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut ptitepo
    Le problème avec ta macro est que seule la dernière sélectionnée sera imprimée.essaies
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Private Sub enregistrer_Click()
    Application.ActivePrinter = "PDFCreator sur Ne00:"
    If enr_janvier Then
        Sheets("Janv").PrintOut
        enr_janvier = False
    End If
    If enr_fevrier Then
        Sheets("Fev").PrintOut
        enr_fevrier = False
    End If
    If enr_mars Then
        Sheets("Mars").PrintOut
        enr_mars = False
    End If
    If enr_avril Then
        Sheets("Avril").PrintOut
        enr_avril = False
    End If
    If enr_mai Then
        Sheets("Mai").PrintOut
        enr_mai = False
    End If
    If enr_juin Then
        Sheets("Juin").PrintOut
        enr_juin = False
    End If
    If enr_juillet Then
        Sheets("Juil").PrintOut
        enr_juillet = False
    End If
    If enr_aout Then
        Sheets("Aout").PrintOut
        enr_aout = False
    End If
    If enr_septembre Then
        Sheets("Sept").PrintOut
        enr_septembre = False
    End If
    If enr_octobre Then
        Sheets("Oct").PrintOut
        enr_octobre = False
    End If
    If enr_novembre Then
        Sheets("Nov").PrintOut
        enr_novembre = False
    End If
    If enr_decembre Then
        Sheets("Dec").PrintOut
        enr_decembre = False
    End If
    End Sub
    L'inconvénient de ma méthode est que tu as 1 document par feuille, mais après, on peut les fusionner sous PDFCreator (manuellement).

    ouskel'n'or : je pense que les feuilles sont sélectionnées à partir de CheckBox.
    Si tu connais un moyen d'inclure/exclure une feuille d'une Array, ça m'intéresse, pa ce que je n'ai pas encore trouvé une méthode.

    Quand à le faire de manière matricielle (2^11 réponses à prévoir).

    La solution me semblerait être de créer une collection, avec les feuilles (ça, j'y arrive), et de sélectionner la collection, ou les items de la collection, mais je ne trouve pas la solution.
    Si tu as une idée ?

    A+

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 246
    Points : 85
    Points
    85
    Par défaut
    Ca fonctionne deja mieux que moi puisqu'il me prend en compte tout les mois que j'ai selectionné, mais il me les mets dans deux fichier PDF different (si j'ai selectionner 2 mois). C'est pas possible de les mettres dans un seul fichier ?

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Et si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(array("Janv", "Fev").select
    ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 246
    Points : 85
    Points
    85
    Par défaut
    Ca marche quant je le tape, mais comme j'ai un formulaire, je ne sais pas comment y intergré a mon code :S

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut ptitepo et le forum
    en attendant mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    Private Sub enregistrer_Click()
    Dim Tab_F() As Sheets
    ReDim Tab_F(0)
    If enr_janvier = True Then
        ReDim Preserve Tab_F(UBound(Tab_F) + 1)
        Set Tab_F(UBound(Tab_F)) = Sheets("Janv")
    End If
    If enr_fevrier = True Then
        ReDim Preserve Tab_F(UBound(Tab_F) + 1)
        Set Tab_F(UBound(Tab_F)) = Sheets("Fev")
    End If
    If enr_mars = True Then
        ReDim Preserve Tab_F(UBound(Tab_F) + 1)
        Set Tab_F(UBound(Tab_F)) = Sheets("Mars")
    End If
    If enr_avril = True Then
        ReDim Preserve Tab_F(UBound(Tab_F) + 1)
        Set Tab_F(UBound(Tab_F)) = Sheets("Avril")
    End If
    If enr_mai = True Then
        ReDim Preserve Tab_F(UBound(Tab_F) + 1)
        Set Tab_F(UBound(Tab_F)) = Sheets("Mai")
    End If
    If enr_juin = True Then
        ReDim Preserve Tab_F(UBound(Tab_F) + 1)
        Set Tab_F(UBound(Tab_F)) = Sheets("Juin")
    End If
    If enr_juillet = True Then
        ReDim Preserve Tab_F(UBound(Tab_F) + 1)
        Set Tab_F(UBound(Tab_F)) = Sheets("Juil")
    End If
    If enr_aout = True Then
        ReDim Preserve Tab_F(UBound(Tab_F) + 1)
        Set Tab_F(UBound(Tab_F)) = Sheets("Aout")
    End If
    If enr_septembre = True Then
        ReDim Preserve Tab_F(UBound(Tab_F) + 1)
        Set Tab_F(UBound(Tab_F)) = Sheets("Sept")
    End If
    If enr_octobre = True Then
        ReDim Preserve Tab_F(UBound(Tab_F) + 1)
        Set Tab_F(UBound(Tab_F)) = Sheets("Oct")
    End If
    If enr_novembre = True Then
        ReDim Preserve Tab_F(UBound(Tab_F) + 1)
        Set Tab_F(UBound(Tab_F)) = Sheets("Nov")
    End If
    If enr_decembre = True Then
        ReDim Preserve Tab_F(UBound(Tab_F) + 1)
        Set Tab_F(UBound(Tab_F)) = Sheets("Dec")
    End If
    Application.ActivePrinter = "PDFCreator sur Ne00:"
    Select Case UBound(Tab_F)
        Case 1
            Sheets(Array(Tab_F(1))).PrintOut
        Case 2
            Sheets(Array(Tab_F(1), Tab_F(2))).PrintOut
        Case 3
            Sheets(Array(Tab_F(1), Tab_F(2), Tab_F(3))).PrintOut
        Case 4
            Sheets(Array(Tab_F(1), Tab_F(2), Tab_F(3), Tab_F(4))).PrintOut
        Case 5
            Sheets(Array(Tab_F(1), Tab_F(2), Tab_F(3), Tab_F(4), Tab_F(5))).PrintOut
        Case 6
            Sheets(Array(Tab_F(1), Tab_F(2), Tab_F(3), Tab_F(4), Tab_F(5), Tab_F(6))).PrintOut
        Case 7
            Sheets(Array(Tab_F(1), Tab_F(2), Tab_F(3), Tab_F(4), Tab_F(5), Tab_F(6), _
                          Tab_F(7))).PrintOut
        Case 8
            Sheets(Array(Tab_F(1), Tab_F(2), Tab_F(3), Tab_F(4), Tab_F(5), Tab_F(6), _
                          Tab_F(7), Tab_F(8))).PrintOut
        Case 9
            Sheets(Array(Tab_F(1), Tab_F(2), Tab_F(3), Tab_F(4), Tab_F(5), Tab_F(6), _
                          Tab_F(7), Tab_F(8), Tab_F(9))).PrintOut
        Case 10
            Sheets(Array(Tab_F(1), Tab_F(2), Tab_F(3), Tab_F(4), Tab_F(5), Tab_F(6), _
                          Tab_F(7), Tab_F(8), Tab_F(9), Tab_F(10))).PrintOut
        Case 11
            Sheets(Array(Tab_F(1), Tab_F(2), Tab_F(3), Tab_F(4), Tab_F(5), Tab_F(6), _
                          Tab_F(7), Tab_F(8), Tab_F(9), Tab_F(10), Tab_F(11))).PrintOut
        Case 12
            Sheets(Array(Tab_F(1), Tab_F(2), Tab_F(3), Tab_F(4), Tab_F(5), Tab_F(6), _
                          Tab_F(7), Tab_F(8), Tab_F(9), Tab_F(10), Tab_F(11), Tab_F(12))).PrintOut
    End Select
    End Sub
    Mais j'ai la flemme de tester
    A+

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Tu ne te simplifie pas la vie en donnant à tes contrôle un nom différent de celui de tes feuilles.

    Teste ça qui remplace tous tes If

    On peut simplifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test()
    Dim tablo(), mois As Variant, i as integer, k as integer
    Dim Ctrl as control, feuilles as variant
        mois = Array("", "janvier", "fevrier","mars","avril","mai","juin","juillet","aout","septembre","octoble","novembre","decembre")
        feuilles = array("", "Jan", "Fev", "Mars", "Avril", "Mai", "Juin", "Juil", "Août", "Sept", "Oct", "Nov", "Déc")
        For i = 1 to 12
            If Me.controls("Enr_" & mois(i) Then
                   k = k+ 1
                   ReDim tablo(k)
                   tablo(k) = feuilles(i)
            End If
        Next
        Sheets(tablo).Printout
    End sub
    Tu vérifies le nom des mois et des feuilles que j'ai utilisés ainsi que la casse (majuscules ou minuscules)
    "Me." remplace le nom de l'userform dans chaque userform quand celui-ci est actif.
    J'ai supposé que tu utilisais des checkbox, auquel cas il n'est pas nécessaire de mettre "if Lecheck = true then" : "If LeCheck then" suffit
    Je n'ai pas testé, tu peux faire ça pour moi ?
    A+

    Edit
    J'avais laissé une crotte, j'ai corrigé

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 246
    Points : 85
    Points
    85
    Par défaut
    Pour Gorfael : Je ne peut pas utiliser ta methode puisque je doit avoir le choix de prendre un mois ou plusieurs, mais pas forcement en partant de janvier. Mais merci de ton aide

    Pour ouskel'n'or : J'ai testé, ca me mets un message d'erreur "Objet spécifié introuvable" au niveau de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            If Me.Controls("enr_" & mois(i)) Then
    Je me demander quant on mets mois(i), ca signifie que mois est un tableau ? Je ne sais pas à quoi correction le type "variant". Et j'ai pas compris non plus l'histoire du "if Lecheck = true then" : "If LeCheck then", en effet j'ai oublier de préciser que c'était des checkboox.
    Voila ca fait beaucoup de chose mais merci de vos aide

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut ptitepo et le forum
    Je ne peut pas utiliser ta methode puisque je doit avoir le choix de prendre un mois ou plusieurs, mais pas forcement en partant de janvier. Mais merci de ton aide
    ??? la dernière macro, essaie-la. Elle se contrefout du/des mois choisi(s). C'est pour ça que je peux me contenter de 12 choix avec le select case. Le premier mois choisis, même si c'est décembre sera en indice 1. S'il est le seul, la limite haute des indices sera 1 et tu n'imprimera que la feuille stockée en indice 1 (l'indice 0 ne me servant qu'à initialiser la variable tableau).

    C'est pas le mois de janvier qui est en indice 1, c'est le premier mois choisi en partant de janvier.

    Mais la méthode de ouskel'n'or me semble plus synthétique, non, l'est nettement.
    Sauf qu'une fois que tu l'auras validée, je pense qu'il te faudrait inclure une remise à zéro (false) du controle concerné :
    Me.Controls("enr_" & mois(i)) = false

    A+

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 246
    Points : 85
    Points
    85
    Par défaut
    Ahh d'accord, j'avais pas compris comme ca,
    Mais quant je test ca me mets "incompatibilité de type". Quant je choche une case, il va bien sur le bon cas, mais s'arrete sur cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Set Tab_F(UBound(Tab_F)) = Sheets("Janv")
    Que fait UBound?
    Pour l'instant j'essaye de comprendre, même si c'est long tanpi, je modifirais après.

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par ptitepo Voir le message
    Pour ouskel'n'or : J'ai testé, ca me mets un message d'erreur "Objet spécifié introuvable" au niveau de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            If Me.Controls("enr_" & mois(i)) Then
    Tu peux effectivement avoir cette erreur si dans le tableau mois() l'un des éléments ne correspond pas au nom de ton checkbox
    Si dans le tableau tu as "août" à la place "aout", "déc" pour "dec", etc... ça ne fonctionne pas.
    Citation Envoyé par ousk' qui a pourtant bien dit...
    "Tu vérifies le nom des mois et des feuilles que j'ai utilisés ainsi que la casse (majuscules ou minuscules)"
    Vérifie aussi le nombre de caractères.

    Tu crois que tu peux faire ça pour moi ?

    Pour les tableaux renseignés par Array(....) effectivement, ils se déclarent en variant. C'est pour ça que j'ai mis variant. Sinon, pour un variant on n'a pas à le préciser puique une variable déclarée sans type est un variant
    Tu dis
    A+

  13. #13
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Re...
    Set Tab_F(UBound(Tab_F)) = Sheets("Janv")
    Tab_f est un tablau de feuilles
    set tab_f(1) = sheets("Janv")
    fixe la varible Tab_F dans son indice 1 à la "valeur" feuille dont le nom d'onglet est "Janv"

    Ubound(Tab_F) renvoie l'indice maximal que peut prendre le tableau Tab_F
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If enr_janvier Then
        ReDim Preserve Tab_F(UBound(Tab_F) + 1)
        Set Tab_F(UBound(Tab_F)) = Sheets("Janv")
    End If
    si enr_janvier est VRAI, alors
    Redimensionner le tableau, en conservant les données précédemment fixées, à l'indice maximum +1
    comme c'est janvier, ça fait 0+1=1
    fixer la variable du tableau de l'indice maximum à la valeur feuille("janv")
    donc, si tu as coché enr_janvier, Tab_F(1)=feuille("Janvier")

    Mais mon code travaille sur des feuilles, donc le tableau peut doubler la place prise en RAM par ton fichier
    ouskel'n'or, lui travaille sur des string (enfin, je suppose, par ce que j'essaie aussi de comprendre sa méthode ), ce qui représente un avantage certain (si c'est le cas)

    Par contre, si tu as une erreur, laquelle ? Si c'est par ce qu'il ne trouve pas l'indice, regarde le nom des feuilles de ton fichier.
    A+

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 246
    Points : 85
    Points
    85
    Par défaut
    J'avais quelques coquilles en effet, mais la pourtant j'ai tout reverifié, tout les accent et majuscule/minuscule sont pareil, et non, même erreur. La je vois pas où est le probleme. J'ai essayer avec = false, ca marche pas mieux.
    Faut pas initialisé "k=0" au début du programme? ca marche pas mieux mais c'est juste pour info.

  15. #15
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Montre ton code tel que tu l'as "transposé", que je puisse vérifier tous les éléments.
    Mieux, si tu peux envoyer ton fichier avec une seule feuille. Si tu mets le code, j'aurai le tableau de leurs noms qui me suffira pour les recréer ?
    A+

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 246
    Points : 85
    Points
    85
    Par défaut
    Etant en stage, je ne peux pas envoyer de fichier, se soir je pourrais. J'ai un bouton qui me mene a un formulaire, sur se formulaire 12 checkboox (1 pour chaque mois). et voici le code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim tablo(), mois As Variant, i As Integer, k As Integer
    Dim Ctrl As Control, feuilles As Variant
        k = 0
        mois = Array("janvier", "fevrier", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octoble", "novembre", "decembre")
        feuilles = Array("Janv", "Fev", "Mars", "Avr", "Mai", "Juin", "Juil", "Aout", "Sept", "Oct", "Nov", "Dec")
        For i = 1 To 12
            If Me.Controls("enr_" & mois(i)) Then
                   k = k + 1
                   ReDim tablo(k)
                   tablo(k) = feuilles(i)
            End If
        Next
        Sheets(tablo).PrintOut
        End

  17. #17
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Andouille !
    Tu n'as pas vu que je faisais commencer les tableaux par une chaîne vide ?
    mois = Array("", "janv", .......)
    Tu as cru que c'était pour faire joli ?
    Le premier indice du tableau est zéro. Et la boucle commence à 1, donc, dans ton cas elle démarre sur février et se plante sur 12 puisque le dernier indice = 11. Faut écouter !
    Je n'ai pas tout vu mais commence par corriger ça
    Tu dis
    A+

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 246
    Points : 85
    Points
    85
    Par défaut
    Vi, c'est quant j'ai touché à tout pour tester j'ai oublier de remetre, mais ca me mets la même erreur à la même ligne "objet spécifié introuvable" avec et sans. c'est deseperant. Il y a d'autres erreurs?
    j'ai encore quelques idées, je test et je vous dit. Après je pete 1 gros cable !!!

    J'ai essayé de contourné la ligne qui me bloqué en restant dans les mêmes idées de tableau. Mais c'est la derniere ligne qui me bloque : "Lindice n'appartient pas a la selection " Sheets(tablo(k)).PrintOut". Pourtant c'est la même que toi. C'est un bon truc ou je perd la tête ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Private Sub enregistrer_Click()
    Dim tablo(), mois(13)
    Dim i As Integer, k As Integer
    Dim feuilles(13)
        k = 0
        Application.ActivePrinter = "PDFCreator sur Ne00:"
        mois(1) = "enr_janvier"
        mois(2) = "enr_fevrier"
        mois(3) = "enr_mars"
        mois(4) = "enr_avril"
        mois(5) = "enr_mai"
        mois(6) = "enr_juin"
        mois(7) = "enr_juillet"
        mois(8) = "enr_aout"
        mois(9) = "enr_septembre"
        mois(10) = "enr_octobre"
        mois(11) = "enr_novembre"
        mois(12) = "enr_decembre"
     
        feuilles(1) = "Janv"
        feuilles(2) = "Fev"
        feuilles(3) = "Mars"
        feuilles(4) = "Avr"
        feuilles(5) = "Mai"
        feuilles(6) = "Juin"
        feuilles(7) = "Juil"
        feuilles(8) = "Aout"
        feuilles(9) = "Sept"
        feuilles(10) = "Oct"
        feuilles(11) = "Nov"
        feuilles(12) = "Dec"
     
        For i = 1 To 13
            If mois(i) = True Then
                k = k + 1
                tablo(k) = feuilles(i)
            End If
        Next
        Sheets(tablo).PrintOut
    End Sub

  19. #19
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Emplâtre !
    Comment tu écris octobre ? "octoble" ?
    Et de deux
    Au troisième, je frappe !

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 246
    Points : 85
    Points
    85
    Par défaut
    MDR c'était telement gros que j'ai pas vu, merci, bon ba voila on en vient à la même erreur que j'ai avec ce que j'ai fait en dernier.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/05/2011, 18h19
  2. [AC-2003] formulaire pour enregistrer une inscription
    Par bosk1000 dans le forum IHM
    Réponses: 17
    Dernier message: 01/07/2010, 11h07
  3. utiliser formulaire pour enregistrer des données dans différentes tables
    Par silue fignigue siaka dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 11/04/2009, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo