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 :

Concaténation valeurs en fonction de la date


Sujet :

Macros et VBA Excel

  1. #21
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Ton fichier entre les 2 onglets est bien construit et est ni plus ni moins une transposition de l'en-tête de SUIVIS FORMATIONS dans l'onglet PLAN FORMATION
    Du coup les données en x, y deviennent y, x donc en respectant l'ordre des données on repositionne correctement les infos.
    le nombre de colonnes correspond au nombre de lignes entre les 2 onglets, c'est ce qui permet de faire la correspondance des données sachant que l'on cibles les dates toutes les 2 colonnes d'où le Step 2
    J'ai utilisé des boucles (lien dans las faq) et variables tableaux (2 liens importants qui donnent les explications - cf faq)
    Dans la variable tableau de plan formation on a au total (schématisé) 12 colonnes, comme on avait déjà la ligne il suffisait de connaitre le mois pour faire correspondre à la bonne colonne (ex : Mois 06 => colonne 6)
    Utilisation vba aussi des date (cf faq) pour récupérer l'année et le mois

    je te laisse découvrir tout cela

    Edit : les liens :
    - Utiliser les variables tableaux en VBA Excel
    - Conceptualisation des variables tableau en VBA et Application à l'optimisation du code sous Excel
    - Manipuler les chaînes de caractères en VB6 et VBA Excel (dont le Split utilisé)
    - Les Fonctions Date/Heure
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  2. #22
    Membre régulier
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    A voir la légèreté du code, je n'imaginais pas que cela implique autant de connaissances!
    Bien vu pour le Step2! Je ne vois pas ce que j'aurais pu faire pour contourner la problématique des 2 dates (actuelles et à venir ou plutôt initiale et recyclage).

    J'imagine que les noms de formations OU leur ordre doit être conservé d'une page à l'autre?
    Idem pour les mois, je devrai éviter de décaler les colonnes j'imagine?

    Concernant la variable année ( + ou - n années) serait il possible de saisir directement l'année souhaitée (2018 , 2019,...)? en tant qu'utilisateur unique, le +1 +2 ne me pose pas de problème, mais si je dois partager ce document à plusieurs personnes, peut être seraient ils perturbés de ce fonctionnement?

  3. #23
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    J'imagine que les noms de formations OU leur ordre doit être conservé d'une page à l'autre?
    Idem pour les mois, je devrai éviter de décaler les colonnes j'imagine?
    Le code est paramétré par rapport à la structure tel défini dans le fichier, si il y a des changements de structutre, il faudra adapter …

    Concernant la variable année ( + ou - n années) serait il possible de saisir directement l'année souhaitée (2018 , 2019,...)? en tant qu'utilisateur unique, le +1 +2 ne me pose pas de problème, mais si je dois partager ce document à plusieurs personnes, peut être seraient ils perturbés de ce fonctionnement?
    Sur ce point si tu dois faire un changement, je te laisse réfléchir pour l'adapter, avec un peu de réflexion/logique, c'est une partie qui est faisable …

    , mais si je dois partager ce document à plusieurs personnes, peut être seraient ils perturbés de ce fonctionnement?
    C'est le seul paramètre qu'ils doivent toucher, donc avec une bonne explication, rien de difficile
    0 => année en cours
    1 => l'année prochaine
    -1 => l'année dernière
    etc …
    Voilà

    PS : dans mon post précédent je t'ai mis des liens
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  4. #24
    Membre régulier
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    Excellent!

    Merci pour:
    - ta disponibilité
    - la solution fonctionnelle
    - les explications
    - les pistes de développement

    J'espère pouvoir un jour rendre la pareille à un newbie ;-)

  5. #25
    Membre régulier
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Points : 98
    Points
    98
    Par défaut Difficultés à transposer à un autre cas de figure
    Bonjour à tous,

    Sur le même principe que précédemment, je souhaite obtenir un tableau récapitulatif des Visites Médicales à Planifier pour l'années choisie.

    Le code d'origine, fonctionnel pour le suivi des formations:

    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
    Sub CPlanFormation_Click()
    Dim Mini As Integer, Maxi As Integer, AnneePlus, PF, DL_SF&, Nom, SF, i&, J&, L$, TB_L
     
        Mini = -5: Maxi = 5
        Do
            If AnneePlus Then MsgBox "Merci de mettre un entier compris entre " & Mini & " et " & Maxi
            AnneePlus = Application.InputBox("Ajouter un nombre d'année(s) supplémentaire(s)" & vbCr & "+ ou - sur l'année en cours", "ANNÉE SUPPLÉMENTAIRE VOULUE", Type:=1)
            If AnneePlus = "False" Then Exit Sub
        Loop Until AnneePlus = Fix(AnneePlus) And AnneePlus >= Mini And AnneePlus <= Maxi
     
        With Sheets("PLAN FORMATION")
        Application.ScreenUpdating = False
            .Range("A1").Value = "PLAN DE FORMATION " & Year(Date) + AnneePlus
     
            With .Range("E4:P59")
                .Value = ""
                PF = .Value
     
            With Sheets("SUIVI FORMATIONS")
                DL_SF = .Cells(Rows.Count, 1).End(xlUp).Row
                Nom = .Range("A5:B" & DL_SF).Value
                SF = .Range("F5:BI" & DL_SF).Value
     
                For J = 2 To UBound(SF, 2) Step 2
                    For i = 1 To UBound(SF)
                        If SF(i, J) > "" Then
                            If Year(SF(i, J)) = Year(Date) + AnneePlus Then
                              PF(J, Month(SF(i, J))) = IIf(PF(J, Month(SF(i, J))) = "", Nom(i, 1) & " " & Nom(i, 2), PF(J, Month(SF(i, J))) & vbCr & Nom(i, 1) & " - " & Nom(i, 2))
                              If Not L Like "*" & J + 3 & "*" Then L = L & " " & J + 3 'Récupération des lignes incriminées pour la mise en forme/couleur dans PLAN FORMATION
                            End If
                        End If
                    Next
                Next
            End With
     
                .Value = PF
                .Rows.AutoFit
            End With
     
            With .Range("A4:D59") 'Réinitialisation de la mise en forme/couleur de A4 à D59 
                .Interior.ColorIndex = xlNone
                .Font.Bold = False
                .Font.Color = 1
            End With
     
             TB_L = Split(Trim(L), " ")
            For i = LBound(TB_L) To UBound(TB_L) 'Mise en forme/couleur de A4 à D59 - PS pas bien les cellules fusionnées, en général on les évite ;) mais bon ici c'est pas très grave ;)
                For J = 1 To 4
                    With .Cells(TB_L(i), J)
                        If .MergeArea.Count > 1 Then
                            .MergeArea.Interior.ColorIndex = 6
                            .MergeArea.Font.Bold = True
                            If J > 3 Then .MergeArea.Font.ColorIndex = 10
                        Else
                            .Interior.ColorIndex = 6
                            .Font.Bold = True
                            If J > 3 Then .Font.ColorIndex = 10
                        End If
                    End With
                Next
            Next
     
        Application.ScreenUpdating = True
        End With
    End Sub
    Pour le suivi des visites médicales, mon besoin:
    Le tableau en abscisse devra comporter les mois de l'année, et en ordonnée le nom des différents centre de visite médicale (par ville, en fonction du lieu de résidence des salariés).
    L'intersection de ces coordonnées fera apparaître le NOM et le Prénom des salariés, au MOIS de leur renouvellement, en face de leur centre de rattachement.

    Les données sont issues d'une page nommée SUIVI MEDICAL contenant, entre autre, les NOMS en colonne A, Prénoms en colonne B puis les noms de centres médicaux de J à T et sont ensuite mises en forme sur la page VISITES MEDICALES.
    La macro doit rechercher (en SUIVI MEDICAL) les dates de renouvellement des visites qui sont inscrites à l’intersection de la colonne Centre médical et de la ligne Nom du salaré.

    ci dessous le code en cours d'adaptation aux nouvelles références à analyser:
    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
    Sub CVisitesMedicales_Click()
    Dim Mini As Integer, Maxi As Integer, AnneePlus, PF, DL_SF&, Nom, SF, i&, J&, L$, TB_L
     
        Mini = -5: Maxi = 5
        Do
            If AnneePlus Then MsgBox "Merci de mettre un entier compris entre " & Mini & " et " & Maxi
            AnneePlus = Application.InputBox("Ajouter un nombre d'année(s) supplémentaire(s)" & vbCr & "+ ou - sur l'année en cours", "ANNÉE SUPPLÉMENTAIRE VOULUE", Type:=1)
            If AnneePlus = "False" Then Exit Sub
        Loop Until AnneePlus = Fix(AnneePlus) And AnneePlus >= Mini And AnneePlus <= Maxi
     
        With Sheets("VISITES MEDICALES")
        Application.ScreenUpdating = False
            .Range("A1").Value = "VISITES MEDICALES " & Year(Date) + AnneePlus
     
            With .Range("E4:P17")
                .Value = ""
                PF = .Value
     
            With Sheets("SUIVI MEDICAL")
                DL_SF = .Cells(Rows.Count, 1).End(xlUp).Row
                Nom = .Range("A5:B" & DL_SF).Value
                SF = .Range("J5:T" & DL_SF).Value
     
                For J = 1 To UBound(SF) 'Step 2
                    For i = 1 To UBound(SF)
                        If SF(i, J) > "" Then
                            If Year(SF(i, J)) = Year(Date) + AnneePlus Then
                              PF(J, Month(SF(i, J))) = IIf(PF(J, Month(SF(i, J))) = "", Nom(i, 1) & " " & Nom(i, 2), PF(J, Month(SF(i, J))) & vbCr & " - " & Nom(i, 1) & " " & Nom(i, 2))
                              If Not L Like "*" & J + 3 & "*" Then L = L & " " & J + 3 'Récupération des lignes incriminées pour la mise en forme/couleur dans PLAN FORMATION
                            End If
                        End If
                    Next
                Next
            End With
     
                .Value = PF
                .Rows.AutoFit
            End With
     
            With .Range("A4:D59") 'Réinitialisation de la mise en forme/couleur de A4 à D59 
                .Interior.ColorIndex = xlNone
                .Font.Bold = False
                .Font.Color = 1
            End With
     
             TB2_L = Split(Trim(L), " ")
            For i = LBound(TB_L) To UBound(TB_L) 'Mise en forme/couleur de A4 à D59 - PS pas bien les cellules fusionnées, en général on les évite ;) mais bon ici c'est pas très grave ;)
                For J = 1 To 4
                    With .Cells(TB_L(i), J)
                        If .MergeArea.Count > 1 Then
                            .MergeArea.Interior.ColorIndex = 6
                            .MergeArea.Font.Bold = True
                            If J > 3 Then .MergeArea.Font.ColorIndex = 10
                        Else
                            .Interior.ColorIndex = 6
                            .Font.Bold = True
                            If J > 3 Then .Font.ColorIndex = 10
                        End If
                    End With
                Next
            Next
     
        Application.ScreenUpdating = True
        End With
    End Sub
    Au lancement, la macro s'arrête en ligne 26, prétextant une erreur d'exécution '9' : l'indice n’appartient pas à la sélection. Le pas à pas s'effectue pourtant presque jusqu'au terme de la macro... dommage!

    j'avais préalablement procédé par étapes, et réussi à afficher le nom des salariés concernés par MOIS, mais pas par centre médical (tous les résultats se concaténaient sur la même ligne, triés par mois uniquement) grâce à:

    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
    ub CVisitesMedicales_Click()
    Dim Mini As Integer, Maxi As Integer, AnneePlus, PF, DL_SF&, Nom, SF, i&, J&, L$, TB_L
     
        Mini = -5: Maxi = 5
        Do
            If AnneePlus Then MsgBox "Merci de mettre un entier compris entre " & Mini & " et " & Maxi
            AnneePlus = Application.InputBox("Ajouter un nombre d'année(s) supplémentaire(s)" & vbCr & "+ ou - sur l'année en cours", "ANNÉE SUPPLÉMENTAIRE VOULUE", Type:=1)
            If AnneePlus = "False" Then Exit Sub
        Loop Until AnneePlus = Fix(AnneePlus) And AnneePlus >= Mini And AnneePlus <= Maxi
     
        With Sheets("VISITES MEDICALES")
        Application.ScreenUpdating = False
            .Range("A1").Value = "VISITES MEDICALES " & Year(Date) + AnneePlus
     
            With .Range("E4:P7")
                .Value = ""
                PF = .Value
     
            With Sheets("SUIVI MEDICAL")
                DL_SF = .Cells(Rows.Count, 1).End(xlUp).Row
                Nom = .Range("A5:B" & DL_SF).Value
                SF = .Range("F5:F" & DL_SF).Value
     
                For J = 1 To UBound(SF, 2) 'Step 2
                    For i = 1 To UBound(SF)
                        If SF(i, J) > "" Then
                            If Year(SF(i, J)) = Year(Date) + AnneePlus Then
                              PF(J, Month(SF(i, J))) = IIf(PF(J, Month(SF(i, J))) = "", Nom(i, 1) & " " & LCase(Nom(i, 2)), PF(J, Month(SF(i, J))) & vbCr & " - " & Nom(i, 1) & " " & LCase(Nom(i, 2)))
                              If Not L Like "*" & J + 3 & "*" Then L = L & " " & J + 3 'Récupération des lignes incriminées pour la mise en forme/couleur dans PLAN FORMATION
                            End If
                        End If
                    Next
                Next
            End With
     
                .Value = PF
                .Rows.AutoFit
            End With
     
            With .Range("A4:D59") 'Réinitialisation de la mise en forme/couleur de A4 à D59 
                .Interior.ColorIndex = xlNone
                .Font.Bold = False
                .Font.Color = 1
            End With
     
             TB_L = Split(Trim(L), " ")
            For i = LBound(TB_L) To UBound(TB_L) 'Mise en forme/couleur de A4 à D59 - PS pas bien les cellules fusionnées, en général on les évite ;) mais bon ici c'est pas très grave ;)
                For J = 1 To 4
                    With .Cells(TB_L(i), J)
                        If .MergeArea.Count > 1 Then
                            .MergeArea.Interior.ColorIndex = 6
                            .MergeArea.Font.Bold = True
                            If J > 3 Then .MergeArea.Font.ColorIndex = 10
                        Else
                            .Interior.ColorIndex = 6
                            .Font.Bold = True
                            If J > 3 Then .Font.ColorIndex = 10
                        End If
                    End With
                Next
            Next
     
        Application.ScreenUpdating = True
        End With
    End Sub
    Comment transformer l'essai et parvenir à ajouter une dimension à ce tableau afin de trier les salariés pour chaque centre?

    Merci, par avance ;-)

  6. #26
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Slt,

    N'ayant pas bcp de temps en ce moment,
    Peux tu me donner un classeur exemple en xlsx (sans macro) avec les 2 feuilles concernées + 1 feuille supplémentaire du résultat final. Je verrais le changement de structure … etc

    Ryu
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  7. #27
    Membre régulier
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    Bonjour RyuAutodidacte,

    Ci joint le fichier avec 4 pages:

    - SUIVI FORMATIONS - source du plan de formation suivant
    - PLAN FORMATION
    - SUIVI MEDICAL - source du suivi des visites médicales suivant
    - VISITES MEDICALES

    Cordialement,

    TABLEAU DE SUIVI RH - SSE - Copie.xlsx

  8. #28
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Re,

    ligne 26, prétextant une erreur d'exécution '9'
    Pour ma part j'ai trouvé (de plus par la suite tu auras une erreur 13)

    Indice : SF est un tableau à 2 dimensions.
    as tu vérifié les variables i et J dans la fenêtre des variables locales et la dimensions du tableau ?
    Revois mon code comment cela est écris et les explications que je t'avais donné sur les variables tableaux sur l'autre post où je montre comment l'on boucle

    C'est pas grand chose, dans tous les cas il va falloir que tu fasses le jeu des 7 erreurs
    (comparaison de mon code et du tiens, mais essai de comprendre tout de même)
    Pourquoi modifies tu une variable (voir même une partie du code) ?

    Vérifies aussi tes plages pointant sur tes feuilles afin qu'elles coïncides … !

    PS : se serait Top si tu pouvais commenter tout le code pour chaque ligne

    Je t'ai donné ce qu'il faut pour résoudre le problème, tiens moi au courant

    Ryu

    Edit : je suis allé un peu vite, je regarde la suite plus tard

    Edit 2 : en tout cas lors de mon test j'ai eu le résultat sur plusieurs lignes avec les indications ci-dessus (année +1)
    voilà le résultat est ce bien cela ? :
    Nom : Capture d’ecran.png
Affichages : 151
Taille : 223,9 Ko

    Code corrigé : 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
    Sub CVisitesMedicales_Click()
    Dim Mini As Integer, Maxi As Integer, AnneePlus, PF, DL_SF&, Nom, SF, i&, J&, L$, TB_L
     
        Mini = -5: Maxi = 5
        Do
            If AnneePlus Then MsgBox "Merci de mettre un entier compris entre " & Mini & " et " & Maxi
            AnneePlus = Application.InputBox("Ajouter un nombre d'année(s) supplémentaire(s)" & vbCr & "+ ou - sur l'année en cours", "ANNÉE SUPPLÉMENTAIRE VOULUE", Type:=1)
            If AnneePlus = "False" Then Exit Sub
        Loop Until AnneePlus = Fix(AnneePlus) And AnneePlus >= Mini And AnneePlus <= Maxi
     
        With Sheets("VISITES MEDICALES")
        Application.ScreenUpdating = False
            .Range("A1").Value = "VISITES MEDICALES " & Year(Date) + AnneePlus
     
            With .Range("C4:N14")
                .Value = ""
                PF = .Value
     
            With Sheets("SUIVI MEDICAL")
                DL_SF = .Cells(Rows.Count, 1).End(xlUp).Row
                Nom = .Range("A5:B" & DL_SF).Value
                SF = .Range("J5:T" & DL_SF).Value
     
                For J = 1 To UBound(SF, 2) 'Step 2
                    For i = 1 To UBound(SF)
                        If SF(i, J) > "" Then
                            If Year(SF(i, J)) = Year(Date) + AnneePlus Then
                              PF(J, Month(SF(i, J))) = IIf(PF(J, Month(SF(i, J))) = "", Nom(i, 1) & " " & Nom(i, 2), PF(J, Month(SF(i, J))) & vbCr & " - " & Nom(i, 1) & " " & Nom(i, 2))
                              If Not L Like "*" & J + 3 & "*" Then L = L & " " & J + 3 'Récupération des lignes incriminées pour la mise en forme/couleur dans PLAN FORMATION
                            End If
                        End If
                    Next
                Next
            End With
     
                .Value = PF
                .Rows.AutoFit
            End With
     
            With .Range("A4:B14") 'Réinitialisation de la mise en forme/couleur de A4 à D59
                .Interior.ColorIndex = xlNone
                .Font.Bold = False
                .Font.Color = 1
            End With
     
             TB_L = Split(Trim(L), " ")
            For i = LBound(TB_L) To UBound(TB_L)
                For J = 1 To 2
                    If .Cells(TB_L(i), J).MergeArea.Count > 1 Then
                        With .Cells(TB_L(i), J).MergeArea
                            .Interior.ColorIndex = 6
                            .Font.Bold = True
                             If J > 3 Then .Font.ColorIndex = 10
                        End With
                    Else
                        .Cells(TB_L(i), J).Interior.ColorIndex = 6
                        .Cells(TB_L(i), J).Font.Bold = True
                        If J > 3 Then .Cells(TB_L(i), J).Font.ColorIndex = 10
                    End If
                Next
            Next
     
        Application.ScreenUpdating = True
        End With
    End Sub
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  9. #29
    Membre habitué Avatar de Klin89
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 119
    Points : 178
    Points
    178
    Par défaut
    Bonsoir à tous,

    Avec un dictionnaire
    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
    Option Explicit
    Sub ventile()
    Dim a, i As Long, j As Long, leMois As String, dico As Object
        Set dico = CreateObject("Scripting.Dictionary")
        dico.CompareMode = 1
        a = Sheets("SUIVI MEDICAL").[a3].CurrentRegion.Value
        For j = 10 To UBound(a, 2)
            Set dico(a(2, j)) = CreateObject("Scripting.Dictionary")
            dico(a(2, j)).CompareMode = 1
            For i = 3 To UBound(a, 1)
                If a(i, j) <> "" Then
                    leMois = Format(a(i, j), "mmmm yyyy")
                    dico(a(2, j))(leMois) = dico(a(2, j))(leMois) & _
                                IIf(dico(a(2, j))(leMois) <> "", vbLf, "") & a(i, 1) & " " & a(i, 2)
                End If
            Next
        Next
        Application.ScreenUpdating = False
        With Sheets("VISITES MEDICALES").[a1].CurrentRegion
            With .Offset(3, 2).Resize(.Rows.Count - 3, .Columns.Count - 2)
                .ClearContents
            End With
            For i = 4 To .Rows.Count
                If dico.exists(.Cells(i, 2).Value) Then
                    For j = 3 To .Columns.Count
                        leMois = .Cells(2, j).Value & " " & .Cells(2, 1).Value
                        If dico(.Cells(i, 2).Value).exists(leMois) Then
                            .Cells(i, j).Value = dico(.Cells(i, 2).Value)(leMois)
                        End If
                    Next
                End If
            Next
            .Columns.ColumnWidth = 30
        End With
        Set dico = Nothing
        Application.ScreenUpdating = True
    End Sub
    On aurait pu procéder de cette façon pour la 1ère partie de ta question

    klin89

  10. #30
    Membre régulier
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    Bonjour à tous les 2, j'espère que le week-end aura été reposant!


    @ Klin89: je sais qu'il existe plusieurs méthodes pour parvenir à atteindre un objectif, et ai déjà utilisé les Dico dans des programmes basiques, mais ne maîtrise pas cette solution. Merci de ta proposition!

    @ RyuAutodicdacte:

    Indice : SF est un tableau à 2 dimensions.
    oui, première erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SF = .Range("F5:F" & DL_SF).Value
    Donc une seule dimension!

    as tu vérifié les variables i et J dans la fenêtre des variables locales et la dimensions du tableau ?
    ça me donne les coordonnées de l'endroit ou le code bloque, je "triture" mon tableau source pour essayer de débloquer la situation!
    Revois mon code comment cela est écris et les explications que je t'avais donné sur les variables tableaux sur l'autre post où je montre comment l'on boucle
    C'est pas grand chose, dans tous les cas il va falloir que tu fasses le jeu des 7 erreurs
    (comparaison de mon code et du tiens, mais essai de comprendre tout de même)
    Oups j'en ai trouvé que 2 ou 3!

    Pourquoi modifies tu une variable (voir même une partie du code) ?
    de premiers test qui donnaient des indices positifs avant que je ne change d'avis sur le résultat attendu (mais, bêtise, j'ai gardé le code modifié pour repartir !)

    Vérifies aussi tes plages pointant sur tes feuilles afin qu'elles coïncides … !
    Vu et fait!

    PS : se serait Top si tu pouvais commenter tout le code pour chaque ligne
    je m'y mets tout à l'heure

    Edit 2 : en tout cas lors de mon test j'ai eu le résultat sur plusieurs lignes avec les indications ci-dessus (année +1)
    voilà le résultat est ce bien cela ? :
    ça me paraît juste... j'ai le même résultat sur mon fichier "allégé"

    mon fichier d'origine, lui continue à bloquer , sur la ligne 28 maintenant...

  11. #31
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Bonjour,

    Donc une seule dimension!
    non du tout sur le 1er code fourni pour indiqué l'erreur 9 tu avais mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For J = 1 To UBound(SF) 'Step 2
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For J = 1 To UBound(SF, 2) 'Step 2
    on est sur un tableau à 2 dimensions, avec For J = 1 To UBound(SF, 2), on boucle sur les colonnes de la variable tableau

    mon fichier d'origine, lui continue à bloquer , sur la ligne 28 maintenant...
    qu'est ce qui diffère de ton fichier test qui lui marche ? y a un hic !

    PS : quand il y a une erreur qui se produit dans la procédure, indiquer le n° de ligne n'est pas suffisant,
    il faut : indiquer le N° de ligne, mettre le code de la ligne en questions et mettre le message d'erreur qui bloque la procédure

    Et chose très importante : lorsqu'une erreur se produit et met une ligne de code en jaune (afin d'indiqué la ligne où se produit l'erreur), il faut toujours vérifier les valeurs de ses variables dans la fenêtre des variables locales, et analyser quelle(s) est/sont la/les variable(s) qui fait/font défaut au bon déroulement de la procédure.

    Le code que j'ai corrigé fonctionne parfaitement (j'ai vérifié date par date hier avec année plus 1 tout coïncide) avec le fichier fourni.
    Si ton fichier d’origine bug, soit ton fichier fourni en xlsx n'est pas conforme au fichier d'origine (ce que je doute car on est dans la même logique que les formations),
    soit il y a une erreur dans ton code (qui peut être même minime); quoiqu'il en soit sans avoir les détails (valeurs des variables par rapport à la ligne de code), il m'est difficile d'en dire plus.

    Concernant l'objet dictionnaire, celui-ci donne plus de facilité à l'utilisation, mais est moins rapide que les collections qui elles n'ont pas besoin en plus d'activé une référence (sans compter que cela peut marcher aussi bien sur Mac et PC)

    un lien à lire : https://www.developpez.net/forums/d1...comprehension/
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  12. #32
    Membre régulier
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    C'est bon...

    J'avais une divergence dans la fenêtre des variables locales dans le nombre de colonnes et de lignes entre PF et SF (les abscisses de l'un devenant les ordonnées de l'autre).

    Je n'avais pas focalisé mon attention sur la partie "PF= .Value", il me semblait que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With .Range("C4:N16")
                .Value = ""
                PF = .Value
    N’était présente que pour effacer le contenu du tableau... alors que c'était également la base de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PF(J, Month(SF(i, J))) = IIf(PF(J, Month(SF(i, J))) = "", Nom(i, 1) & " " & Nom(i, 2), PF(J, Month(SF(i, J))) & vbCr & " - " & Nom(i, 1) & " " & Nom(i, 2))
    J'aurais dû commencer par chercher la fonction de chaque ligne, comme tu me le conseillais ce matin!

    je m'y mets!

  13. #33
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    J'aurais dû commencer par chercher la fonction de chaque ligne, comme tu me le conseillais ce matin!

    je m'y mets!
    En effet, cela permet de faire la continuité de ton autre post pour t'entrainer, et en même temps tu te rends compte de l'utilité que cela peut avoir quand on est en plein apprentissage, c'est le travail de codeur qui commence à rentrer
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  14. #34
    Membre régulier
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    Pris par les urgences du lundi...

    Rien à voir : j'ai commencé à chercher une solution pour utiliser certains fichiers + formulaires depuis une tablette android... visiblement cela fait des années que ça intéresse pas mal de monde! as tu entendu parler d'une option viable pour pouvoir utiliser des macros / excel sur Android?

  15. #35
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Non, je suis sur iPhone, Excel pour iPhone ne lis pas les macros.
    Mais je pense, qu'il peut être dangereux d'utiliser des macro sur les phones vu les données sensibles que l'on peut avoir. Après je ne connais pas les motifs exact, mais je pense qu'il y a une part de sécurité …
    Sinon concernant androïd , je n'y connais rien.
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  16. #36
    Membre régulier
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    Bon, encore de jolies zones d'ombre au milieu...

    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
    86
    Sub CVisitesMedicales_Click()
    'Déclaration des variables
    Dim Mini As Integer, Maxi As Integer, AnneePlus, PF, DL_SF&, Nom, SF, i&, J&, L$, TB_L
    'On borne les limites de recherche pour accélérer le traiement
        Mini = -5: Maxi = 5
    'On crée une boucle de consigne
        Do
    'Affichage de la Message Box informant des bornes de recherche
            If AnneePlus Then MsgBox "Merci de mettre un entier compris entre " & Mini & " et " & Maxi
    'Demande du nombre d'années suplémentaires à ajouter ou des années excédentaires à soustraire
            AnneePlus = Application.InputBox("Ajouter un nombre d'année(s) supplémentaire(s)" & vbCr & "+ ou - sur l'année en cours", "ANNÉE SUPPLÉMENTAIRE VOULUE", Type:=1)
    'Si fermeture de la Massage Box, fin du programme
            If AnneePlus = "False" Then Exit Sub
    '???
        Loop Until AnneePlus = Fix(AnneePlus) And AnneePlus >= Mini And AnneePlus <= Maxi
    'On pointe le classeur contenant la macro et la feuille cible afin de lui donner des instructions
        With ThisWorkbook.Worksheets("VISITES MEDICALES")
    'On interrompt l'affichage des calculs afin d'accélérer le traitement
        Application.ScreenUpdating = False
    'On affiche le message et l'année choisie pour l'exécution de la recherche
            .Range("A1").Value = "VISITES MEDICALES " & Year(Date) + AnneePlus
    'On pointe la plage d'affichage du futur tableau de synthèse
            With .Range("C4:N16")
    'On efface son contenu précédent
                .Value = ""
    'On enregistre la valeur de cette plage (?)
                PF = .Value
     'On pointe le classeur contenant la macro et la feuille source afin de lui donner des instructions
            With Sheets("SUIVI MEDICAL")
    'On définit la dernière ligne renseignée
                DL_SF = .Cells(Rows.Count, 1).End(xlUp).Row
    'Création d 'un tableau Nom pour les noms et prénoms / indice 1
                Nom = .Range("A5:B" & DL_SF).Value
    'Création d 'un tableau SF pour les dates de visites à rechercher / indice 1
                SF = .Range("I5:U" & DL_SF).Value
    'On Boucle les colonnes du tableau SF depuis le plus petit indice jusqu'au plus grand
                For J = 1 To UBound(SF, 2)
    'On Boucle les lignes du tableau SF depuis le plus petit indice jusqu'au plus grand
                    For i = 1 To UBound(SF)
    'Si la cellule intersection entre ligne et colonne du tableau n'est pas vide, alors...
                        If SF(i, J) > "" Then
    'Si la date contenue dans cette cellule fait partie de l'année recherchée (année en cours + nombre d'année en + ou en -)
                            If Year(SF(i, J)) = Year(Date) + AnneePlus Then
    'On remplit le tableau cible par les arguments trouvés, classés par mois des dates sélectionnées, on affiche les NOMS et Prénoms des salariés dans la cellule correspondante, concaténnés si besoin est
    'besoin d'un peu plus d'explications ici!
                                      PF(J, Month(SF(i, J))) = IIf(PF(J, Month(SF(i, J))) = "", Nom(i, 1) & " " & LCase(Nom(i, 2)), PF(J, Month(SF(i, J))) & vbCr & " - " & Nom(i, 1) & " " & LCase(Nom(i, 2)))
     'Récupération des lignes incriminées pour la mise en forme/couleur dans VISITES MEDICALES
     'besoin d'un peu plus d'explications ici!
                              If Not L Like "*" & J + 3 & "*" Then L = L & " " & J + 3
                            End If
                        End If
                    Next
                Next
            End With
    'On colle le tableau dans sa sélection finale
                .Value = PF
    'on ajuste la hauteur des lignes
                .Rows.AutoFit
            End With
     'Réinitialisation de la mise en forme/couleur de A4 à B20 
            With .Range("A4:B20")
                .Interior.ColorIndex = xlNone
                .Font.Bold = False
                .Font.Color = 1
            End With
     
             TB_L = Split(Trim(L), " ")
            For i = LBound(TB_L) To UBound(TB_L) 'Mise en forme/couleur de A4 à B 20 - PS pas bien les cellules fusionnées, en général on les évite ;) mais bon ici c'est pas très grave ;)
                For J = 1 To 2
                    With .Cells(TB_L(i), J)
                        If .MergeArea.Count > 1 Then
                            .MergeArea.Interior.ColorIndex = 6
                            .MergeArea.Font.Bold = True
                            If J > 3 Then .MergeArea.Font.ColorIndex = 10
                        Else
                            .Interior.ColorIndex = 6
                            .Font.Bold = True
                            If J > 3 Then .Font.ColorIndex = 10
                        End If
                    End With
                Next
            Next
     
        Application.ScreenUpdating = True
        End With
    End Sub
    Je n'ai pas détaillé la mise en forme de fin

  17. #37
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Bonsoir IronHeavy,

    Bon pas mal occupé donc je ne réponds que maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'On borne les limites de recherche pour accélérer le traiement
        Mini = -5: Maxi = 5
    En quoi on accélère le traitement ?? on limite tout simplement le nombre d'année à + ou - 5 ans (ce qui est déjà pas mal)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'On crée une boucle de consigne
        Do
    Je vois bien que tu veux expliquer en terme général, mais les mots on leur importance, je pense que parfois il serait plus judicieux d'utiliser l'aide VBA avec la touche F1 afin de faire une meilleure description dans le commentaire
    Comme ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Si fermeture de la Massage Box, fin du programme
            If AnneePlus = "False" Then Exit Sub
    Dans quel cas cela se produit ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    '???
        Loop Until AnneePlus = Fix(AnneePlus) And AnneePlus >= Mini And AnneePlus <= Maxi
    Aide VBA avec F1 et regarder ce que vaut les variables dans la fenêtre des variables locales afin d'en déduire ce qui s'y passe (tu vas voir tu vas devenir Forgeron )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'On enregistre la valeur de cette plage (?)
                PF = .Value
    On créé la variable tableau PF (PF comme Plan de Formation => pour l'ancien code, mais on donne le nom que l'on souhaite)
    NB : PF = ThisWorkbook.Worksheets("VISITES MEDICALES").Range("C4:N16").Value (dont on a effacer les valeurs juste avant)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'besoin d'un peu plus d'explications ici!
                                      PF(J, Month(SF(i, J))) = IIf(PF(J, Month(SF(i, J))) = "", Nom(i, 1) & " " & LCase(Nom(i, 2)), PF(J, Month(SF(i, J))) & vbCr & " - " & Nom(i, 1) & " " & LCase(Nom(i, 2)))
     'Récupération des lignes incriminées pour la mise en forme/couleur dans VISITES MEDICALES
     'besoin d'un peu plus d'explications ici!
                              If Not L Like "*" & J + 3 & "*" Then L = L & " " & J + 3
    'besoin d'un peu plus d'explications ici! =>J'aimerai auparavant que tu passes par l'aide VBA avec F1 et la fenêtre des variables locales; he oui c'est du travail et cela prends plus de temps, mais c'est nécessaire et se sera bénéfique pour la suite

    Ligne 67 : TB_L = Split(Trim(L), " ") => regarde la relation avec le code juste au dessus => F1 + fenêtre des variables locales

    Ligne 67 à 86 : il serait bien que tu trouves un moment pour le faire
    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
              TB_L = Split(Trim(L), " ")
            For i = LBound(TB_L) To UBound(TB_L) 'Mise en forme/couleur de A4 à B 20 - PS pas bien les cellules fusionnées, en général on les évite ;) mais bon ici c'est pas très grave ;)
                For J = 1 To 2
                    With .Cells(TB_L(i), J)
                        If .MergeArea.Count > 1 Then
                            .MergeArea.Interior.ColorIndex = 6
                            .MergeArea.Font.Bold = True
                            If J > 3 Then .MergeArea.Font.ColorIndex = 10
                        Else
                            .Interior.ColorIndex = 6
                            .Font.Bold = True
                            If J > 3 Then .Font.ColorIndex = 10
                        End If
                    End With
                Next
            Next
     
        Application.ScreenUpdating = True
        End With
    End Sub
    Dans l'ensemble c'est bien mais parfois un plus de précisions serait un plus pour la compréhension du code (montrant que tu as bien assimilé ce qui se passe dans le code)

    à tantôt
    Ryu
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

Discussions similaires

  1. Changer des valeurs en fonction d'une date
    Par sam01 dans le forum Requêtes
    Réponses: 10
    Dernier message: 05/03/2016, 19h22
  2. [XL-2013] Problème d'ajout de valeur en fonction d'une date VBA
    Par Pierre8585 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/01/2016, 18h00
  3. Paramètre multi valeurs en fonction de la date
    Par mekatxis dans le forum Deski
    Réponses: 6
    Dernier message: 29/06/2010, 17h39
  4. Zedgraph valeur en fonction d'une date
    Par petitours dans le forum C#
    Réponses: 8
    Dernier message: 07/06/2010, 10h34
  5. Réponses: 14
    Dernier message: 04/11/2009, 19h08

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