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 :

Problème de codage sur VBA


Sujet :

Macros et VBA Excel

  1. #41
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    si tu ajoute un message pour voir le j !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Sheets("SUIVTRANS EN COURS")
    j = .Range("A" & Rows.Count).End(xlUp).Row
    msgbox j
    qu'est ce que ça donne

  2. #42
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Toujours rien en plus BENNASR, quand j'active la macro çà m’efface tous mes autre commentaire...

  3. #43
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    je crois que ta colonne A est vide !!!!
    changer avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    j = .Range("J" & Rows.Count).End(xlUp).Row

  4. #44
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Marcel ca ne marche pas ton code
    Pourquoi?
    Si message d'erreur, quelle ligne est soulignée?

    As-tu réussi à activer la référence Microsoft Scripting.Runtime?

  5. #45
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    je crois que ta colonne A est vide !!!!
    changer avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    j = .Range("J" & Rows.Count).End(xlUp).Row
    Merci de me confirmer si c'est bien ce code merci après les modifications que tu m'as dis.

    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
    Dim dernl As Integer
    Dim i As Integer
    Dim NUMSIN As String, CODECIE As String
    Dim C As Integer, D As Integer
    With Sheets("SUIVTRANS EN COURS")
            j = .Range("J" & .Rows.Count).End(xlUp).Row
            MsgBox j
          .Range("M2:M" & j).ClearContents
     
     
            For i = 2 To j
                    NUMSIN = .Cells(i, 10).Value
                    CODECIE = .Cells(i, 8).Value
                    C = WorksheetFunction.CountIf(.Range("J2:J" & j), NUMSIN)
                    D = WorksheetFunction.CountIf(.Range("H2:H" & j), CODECIE)
                    If C > D Then .Cells(i, 13).Value = "REGULARISATION CIE-TEMPLATE"
            Next i
    End With
     
    End Sub

  6. #46
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    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
    Sub testtt()
    ''REGULARISATION ECART-TEMPLATE
    Dim Tablo
    Dim j As Long
    Dim C As Integer
    Application.ScreenUpdating = False
     
    With Sheets("SUIVTRANS EN COURS")
    j = .Range("J" & Rows.Count).End(xlUp).Row
    .Range("M2:M" & j).ClearContents
    For j = 2 To j
    NUMSIN = .Cells(j, "J")
    CODECIE = .Cells(j, "H")
    C = WorksheetFunction.CountIf(.Range("J2:J" & .Range("A" & Rows.Count).End(xlUp).Row), NUMSIN)
    D = WorksheetFunction.CountIf(.Range("H2:H" & .Range("A" & Rows.Count).End(xlUp).Row), CODECIE)
    If C > D Then .Cells(j, "M") = "REGULARISATION CIE-TEMPLATE"
    Next j
     
    Tablo = .Range("J2", "K" & .Range("K" & .Rows.Count).End(xlUp).Row)
     For j = 2 To j - 1
     x = 0
       For i = LBound(Tablo, 1) To UBound(Tablo, 1)
                 If .Cells(j, "j") = Tablo(i, 1) Then
                   x = x + CDbl(Tablo(i, 2))
                 End If
      Next i
      If x >= -10 And x <= 10 And x <> 0 Then .Cells(j, 13) = "REGULARISATION ECART-TEMPLATE"
      'Cells(j, "AA") = x
      'MsgBox x
      Next j
    End With
    Application.ScreenUpdating = True
    End Sub
    juste changez li integer par long

  7. #47
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    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
    Sub testtt()
    ''REGULARISATION ECART-TEMPLATE
    Dim Tablo
    Dim j As Long
    Dim C As Integer
    Application.ScreenUpdating = False
     
    With Sheets("SUIVTRANS EN COURS")
    j = .Range("J" & Rows.Count).End(xlUp).Row
    .Range("M2:M" & j).ClearContents
    For j = 2 To j
    NUMSIN = .Cells(j, "J")
    CODECIE = .Cells(j, "H")
    C = WorksheetFunction.CountIf(.Range("J2:J" & .Range("A" & Rows.Count).End(xlUp).Row), NUMSIN)
    D = WorksheetFunction.CountIf(.Range("H2:H" & .Range("A" & Rows.Count).End(xlUp).Row), CODECIE)
    If C > D Then .Cells(j, "M") = "REGULARISATION CIE-TEMPLATE"
    Next j
     
    Tablo = .Range("J2", "K" & .Range("K" & .Rows.Count).End(xlUp).Row)
     For j = 2 To j - 1
     x = 0
       For i = LBound(Tablo, 1) To UBound(Tablo, 1)
                 If .Cells(j, "j") = Tablo(i, 1) Then
                   x = x + CDbl(Tablo(i, 2))
                 End If
      Next i
      If x >= -10 And x <= 10 And x <> 0 Then .Cells(j, 13) = "REGULARISATION ECART-TEMPLATE"
      'Cells(j, "AA") = x
      'MsgBox x
      Next j
    End With
    Application.ScreenUpdating = True
    End Sub
    Toujours la même chose il me donne juste les commentaire pour les ECARTS...

    BENNSSAR, je te propose qu'on passe à un autre commentaire stp

    Si il faut que pour le même sinistre la sommes des montants en "K" soit <à 10 euro et si dans la colonne Type d'opération en colonne "L" = "REGL" alors je mets un commentaire en colonne M "REGL CIE - SOLDE-DEBITEUR"

  8. #48
    Membre expérimenté
    Homme Profil pro
    chef de projet transverse MOE
    Inscrit en
    Janvier 2015
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : chef de projet transverse MOE
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 121
    Par défaut
    Citation Envoyé par OBADJ Voir le message
    Toujours la même chose il me donne juste les commentaire pour les ECARTS...

    BENNSSAR, je te propose qu'on passe à un autre commentaire stp

    Si il faut que pour le même sinistre la sommes des montants en "K" soit <à 10 euro et si dans la colonne Type d'opération en colonne "L" = "REGL" alors je mets un commentaire en colonne M "REGL CIE - SOLDE-DEBITEUR"
    Tu parcours ta liste comme précédemment. Pour chaque ligne tu recupère le type de sinistre, tu fait une somme.si pour avoir la somme des montants avec le même code sinistre, et si ta somme est inférieure à 10 euros et que en colonne l pour ta ligne tu as "REGL", tu colles ton commentaire.

    Avec tous les exemples cités plus haut, tu as largement de quoi t'inspirer pour écrire du code qui marche et revenir vers nous une fois que ce sera fait

  9. #49
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Merci de me confirmer si mon code est bon, si il manque as des "End if" ou autre :

    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
    Sub Macro4()
    With Sheets("SUIVTRANS EN COURS")
    j = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("M2:M" & j).ClearContents
    For j = 2 To j
    NUMSIN = .Cells(j, "J")
    CODECIE = .Cells(j, "H")
    C = WorksheetFunction.CountIf(.Range("J2:J" & .Range("A" & Rows.Count).End(xlUp).Row), NUMSIN)
    D = WorksheetFunction.CountIf(.Range("H2:H" & .Range("A" & Rows.Count).End(xlUp).Row), CODECIE)
    If C > D Then .Cells(j, "M") = "REGULARISATION CIE-TEMPLATE"
    Next j
     
    Tablo = .Range("J2", "K" & .Range("K" & .Rows.Count).End(xlUp).Row)
     For j = 2 To j - 1
     x = 0
       For i = LBound(Tablo, 1) To UBound(Tablo, 1)
                 If .Cells(j, "j") = Tablo(i, 1) Then
                   x = x + CDbl(Tablo(i, 2))
      End If
     
      'SOLDE CREDITEUR - A REMBOURSER
      Next i
      If x < -10 Then .Cells(j, 13) = "SOLDE CREDITEUR - A REMBOURSER"
      'Cells(j, "AA") = x
      'MsgBox x
      Next j
     
     'REGLT CIE-SOLDE-DEBITEUR
      If .Cells(j, "L") = "REGLT" And .Cells(j, "K") > 10 Then
      .Cells(j, "M") = "REGLT CIE-SOLDE-DEBITEUR"
      Next j
     
    End With
    Application.ScreenUpdating = True
    End Sub

  10. #50
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    For j = 2 To j - 1
     
       For i = LBound(Tablo, 1) To UBound(Tablo, 1)
         ....
       Next i
         ......
       Next j
     
       If .Cells(j, "L") = "REGLT" And .Cells(j, "K") > 10 Then
      .Cells(j, "M") = "REGLT CIE-SOLDE-DEBITEUR" ' !!!!!!!!
     Next j
    Laisserait coi le plus tolérant. Il n'est pas possible de développer avec de telles lacunes et dans de telles conditions !
    Ce n'est pas sérieux et tenter de guider dans de telles conditions est quasi irresponsable.

  11. #51
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Bonjour Unparia,

    Oui je suis débutant pas facile de me faire comprendre en VBA et j'en suis désolé. J'espère qu'on va réussir à résoudre ma macro !

  12. #52
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Citation Envoyé par MarcelG Voir le message
    Salut,

    Il te faut dès lors passer par un dictionnaire des compagnies attaché à chaque sinistre.
    Si le compte de dictionnaire est > 1 alors la mention est portée.

    Il doit y avoir plus sophistiqué. Mais l'esprit est là.

    Ne pas oublier d'activer la référence "Microsoft Scripting Runtime" afin de bien déclarer le dictionnaire ee en faciliter la saisie des méthodes et propriétés.

    A comprendre d'abord. Pas de copier/coller. Volontairement, je n'ai pas mis de commentaire.
    A adapter ensuite.
    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
    Option Explicit
     
    Public Sub essai_sin()
     
    Dim dernl As Integer
    Dim i As Integer, j As Integer
     
    Dim dico As Scripting.Dictionary
     
    Set dico = CreateObject("Scripting.Dictionary")
     
    With Sheets("SUIVTRANS EN COURS")
            dernl = .Range("A" & .Rows.Count).End(xlUp).Row
            For i = 2 To dernl
                    For j = 2 To dernl
                            If .Cells(j, 10).Value = .Cells(i, 10).Value And Not dico.Exists(Cells(j, 8).Value) Then dico.Add .Cells(j, 8).Value, .Cells(j, 8).Value
                    Next j
                    If dico.Count > 1 Then .Cells(i, 10).Offset(0, 3).Value = "REGULARISATION CIE-TEMPLATE"
                    dico.RemoveAll
            Next i
    End With
     
    Set dico = Nothing
     
    End Sub
    MarcelG sont code a l'air de fonctionner, Enfin ! Cependant, j'ai un soucis dans ton codage car la macro mets bien mets le commentaire "REGULARISATION CIE-TEMPLATE" lorsque pour un même Numéro de sinistre il y a la présence de 2 codes CIE différents en colonne H. En revanche, il ne doit pas mettre de commentaire lorsque pour un même Numéro de sinistre, les codes CIE sont les mêmes... Et c'est le cas quand je lance ta macro il me mets le commentaire alors que les codes CIE sont identiques.

    Exemple :

    Numéro de sinistre (colonne J) :
    B1760521836
    B1760521836
    B1760521836
    B1760521836

    Code CIE (colonne H) :
    118
    200
    200
    200

    Commentaire (colonne M) :
    REGULARISATION CIE-TEMPLATE
    REGULARISATION CIE-TEMPLATE
    REGULARISATION CIE-TEMPLATE
    REGULARISATION CIE-TEMPLATE

    Dans ce cas ci-dessus, le commentaire doit être appliqué, MAIS si a la place du code CIE "118" ca aurait été "200" donc identique au 3 autres code CIE pour un même nuléro de sinistre; il ne doit pas y avoir de commentaire.


    Désolé de vous embetter autant avec ça...

    Cordialement,

  13. #53
    Membre expérimenté
    Homme Profil pro
    chef de projet transverse MOE
    Inscrit en
    Janvier 2015
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : chef de projet transverse MOE
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 121
    Par défaut
    1ere chose: Bien exprimer tes besoins. Nous sommes tous arrivé à la même conclusion (pas forcément en le codant de la même facon) parce que tu avais mal formulé.
    Le problème qu'on a ici, c'est qu'on ne sait pas quel est le bon code sinistre.

    Exemple:

    CIE -- Code sinistre
    1 -- A
    1 -- A
    1 -- B
    1 -- B

    Ici si on fait notre macro (celle qui met un commentaire si parmi toutes les lignes avec un même CIE on a un code sinistre différent), toutes les lignes se récupèrent un commentaire.
    Si on fait ta nouvelle demande (ne mettre un commentaire que si on a pas le même code sinistre sur une des autres lignes) alors aucune n'aurait eu de commentaire....

    Bref, ta demande est irréalisable si on ne sait pas quel est le bon code sinistre.

    PS: On pourrais utiliser une méthode empirique:

    Je déclare un tableau de correspondance CIE -- Code sinistre.
    Dans ce tableau on va stocker le code sinistre le plus représenté pour le CIE.
    La première étape est de parcourir ton fichier excel pour déterminer le code sinistre le plus représenté pour chaque code compagnie et de le stocker dans le tableau.
    La 2eme, pour chaque ligne que tu traites, regarder si ton code sinistre est celui le plus représenté en recherchant la ligne correspond a ton CIE dans le tableau et dans le cas contraire, coller ton commentaire.

    Bonne chance.

    PS.PS: Avant de demander je t'invite à coder toi même. Tu auras bien plus de réponses si tu fait un bout de code et que viennes quand tu coinces que si tu postes directement une demande sans montrer que tu as essayé...

  14. #54
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour à tous, Bonjour au Forum,

    Pour répondre à Obadj.
    C'est bien dans ce sens que j'ai développé.
    Le code retourne un commentaire dans le cas où, et seulement dans ce cas, 2 codes Cie sont affectés à 1 même sinistre.
    Le commentaire est mis sur toutes les lignes retournant le n° de sinistre.
    Il suffit de regarder le code.
    Testé.

  15. #55
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Bonjour,

    Oui MarcelG c'est ça, sauf que c'est 2( ou plus) codes CIE sont identique. Pas juste la présence des deux codes CIE.

    Tu vois ce que je veux dire. J'ai déjà tester ton code

    A tous du coup la solution pour cahnger le code stp ?

  16. #56
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,

    sauf que c'est 2( ou plus)
    Je persiste et signe du fait que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If dico.Count > 1 Then .Cells(i, 10).Offset(0, 3).Value = "REGULARISATION CIE-TEMPLATE"
    Dans ton tout 1er fichier, en ce qui concerne le dernier sinistre (sur fond bleu)
    J'ai informé la colonne H des valeurs 118,200,300 et 200.
    La ligne de code
    reporte dans la fenêtre Exécution
    3
    3
    3
    3

    Je te laisse tester. (Je viens de 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
    21
    22
    23
    24
    25
    26
    Option Explicit
     
    Public Sub essai_sin()
     
    Dim dernl As Integer
    Dim i As Integer, j As Integer
     
    Dim dico As Scripting.Dictionary
     
    Set dico = CreateObject("Scripting.Dictionary")
     
    With Sheets("SUIVTRANS EN COURS")
            dernl = .Range("A" & .Rows.Count).End(xlUp).Row
            For i = 2 To dernl
                    For j = 2 To dernl
                            If .Cells(j, 10).Value = .Cells(i, 10).Value And Not dico.Exists(Cells(j, 8).Value) Then dico.Add .Cells(j, 8).Value, .Cells(j, 8).Value
                    Next j
                    Debug.Print dico.Count
                    If dico.Count > 1 Then .Cells(i, 10).Offset(0, 3).Value = "REGULARISATION CIE-TEMPLATE"
                    dico.RemoveAll
            Next i
    End With
     
    Set dico = Nothing
     
    End Sub

  17. #57
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Effectivement sur mon ancien fichier ça marche bien. Je te félicite Marcel G !!!
    Merci, Je suis très reconnaissant !!

  18. #58
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,

    Pas de souci.
    Le principal est que tu comprennes le code.
    Dans le cas contraire, tu effectues les recherches adéquates puis tu reviens pour les questions éventuelles.
    Le principal est dans toute discussion de:
    Faire le maximum de recherches pour répondre à sa problématique.
    La recherche, même en échec, amène à progresser.
    En cas de difficulté
    - Exposer clairement sa problématiques
    - ... en retournant le code ébauché.

    Tu peux regarder le post #20 de cette discussion
    Je cite des espaces qui pourraient t'être utiles.

    Pour le cas présent:
    - Après l'avoir compris, tu appliques le code à ton classeur de travail
    - Tu places cette discussion en mode "Résolue"

    Bonne continuation et à bientôt.

  19. #59
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    C'est noté MarcelG, je te remercie ! J'aimerais avoir un dernier avis stp pour une autre macro je te laisse mon codage :
    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
    With Sheets("SUIVTRANS EN COURS")
    j = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("M2:M" & j).ClearContents
    For j = 2 To j
    NUMSIN = .Cells(j, "J")
    CODECIE = .Cells(j, "H")
    C = WorksheetFunction.CountIf(.Range("J2:J" & .Range("A" & Rows.Count).End(xlUp).Row), NUMSIN)
    D = WorksheetFunction.CountIf(.Range("H2:H" & .Range("A" & Rows.Count).End(xlUp).Row), CODECIE)
    If C > D Then .Cells(j, "M") = "REGULARISATION CIE-TEMPLATE"
    Next j
     
    Tablo = .Range("J2", "K" & .Range("K" & .Rows.Count).End(xlUp).Row)
     For j = 2 To j - 1
     x = 0
       For i = LBound(Tablo, 1) To UBound(Tablo, 1)
                 If .Cells(j, "j") = Tablo(i, 1) Then
                   x = x + CDbl(Tablo(i, 2))
      End If
     
      'REGULARISATION ECART-TEMPLATE
       Next i
      If x >= -10 And x <= 10 And x <> 0 Then .Cells(j, 13) = "REGULARISATION ECART-TEMPLATE"
      'Cells(j, "AA") = x
      'MsgBox x
    End With
     
      'SOLDE CREDITEUR - A REMBOURSER
      If x < -10 Then .Cells(j, 13) = "SOLDE CREDITEUR - A REMBOURSER"
      'Cells(j, "AA") = x
      'MsgBox x
     
     'REGLT CIE-SOLDE-DEBITEUR
      If .Cells(j, "L") = "REGLT" And .Cells(j, "K") > 10 Then
      .Cells(j, "M") = "REGLT CIE-SOLDE-DEBITEUR"
      Next j
      'Cells(j, "AA") = x
      'MsgBox x
    Application.ScreenUpdating = True
    End Sub
    'REGULARISATION ECART-TEMPLATE fonctionne mais ensuite je veux qu'il rajoute d'autre commentaire donc j'ai "enchaîné" avec un "If" pour mettre une autre condition pour un autre commentaire. Merci de me corriger si nécessaire.

  20. #60
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour Obadj,

    As-tu testé?

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Problème de réservation sur vba
    Par Pierreschu dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/01/2018, 14h06
  2. [XL-2007] problème de codage en vba ("copie d'une partie d'une cellule dans une cellule vide")
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/10/2010, 18h01
  3. Problème au niveau codage sur unreal.
    Par FloR3nT dans le forum IRC / mIRC
    Réponses: 0
    Dernier message: 07/04/2009, 14h50
  4. Problème de requêtage sur Interbase 6.0 via ODBC en VBA-E
    Par GriFfith_ dans le forum InterBase
    Réponses: 3
    Dernier message: 01/09/2008, 10h47
  5. Réponses: 4
    Dernier message: 16/06/2005, 16h37

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