Texte sur les lignes dont la colonne precedente est fusionnée

nanoo79 Messages postés 34 Statut Membre -  
nanoo79 Messages postés 34 Statut Membre -
Bonjour,

Dans ma macro je demande de mettre un texte dans une cellule selon la reponse a deux conditions. Ca j'ai reussi a faire mais je ne parviens pas a faire en sorte que ce texte soit dupliqué sur toutes les lignes qui correspondent a une cellule fusionnés sur une colonne precedente.

Je vous explique:

Si la cellule cells (J,10) a un texte de couleur rouge et que la valeur de la cells (J,6) est egale à zero alors la cels(J,14) doit avoir comme text "Unauthorized Deposit" mais ce text doit etre duppliquée sur toutes les lignes ou la cells(J,10) est fusionée

Voici mon code:

Workbooks("Reporting Global.xlsx").Sheets("Reporting").Activate
Range("A1").Select
For J = Range("A60000").End(xlUp).Row To 1 Step -1
If Cells(J, 10).Font.Color = vbRed And Cells(J, 6).Value = 0 Then
Cells(J, 14).Value = " Unauthorized Deposit"
End If
Next J

For J = Range("A60000").End(xlUp).Row To 1 Step -1
If Cells(J, 10).Font.Color = vbRed And Cells(J, 6).Value > 0 Then
Cells(J, 14).Value = "Deposit in Excess"
End If
Next J

Auriez vous une idee de comment faire?
Merci beaucoup

23 réponses

  • 1
  • 2
  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    toutes les lignes ou la cells(J,10) est fusionée!!!!! petite explication svp

    la couleur rouge est le resultat d'une MFC ????

    une seule boucle suffit pour les deux test >0 et =0
    0
  2. nanoo79 Messages postés 34 Statut Membre
     
    Je t'expliques dans mon fichier j'ai les differents comptes de mes clients avec une ligne par devises ca c'est la colonne H et dans la colonne J (qui equivaut a cells(J,10) j'ai la somme des montants des différents comptes devises. Cette cellule est fusionnée c'est a dire que si le client a 10 comptes de devises différentes la cellule dans la colonne J est fusionnée sur ces 10 lignes.
    Je voudrais que mon commentaire s'inscrivent sur ces dix lignes avec mon code actuel il ne s'inscrit que sur une celle.

    La couleur est mise avec un code plus haut dans la macro, la condition etant que si le montant est inferieur a -50000 le text s'affiche en rouge.

    Il est tres probable que mon code ne soit pas optimal je suis debutante et tatonne sans aucune formation.
    0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    pour le compte de lignes, prendre une colonne sans cellules fusionnees.

    ici j'ai pris la colonne F (6):

    Sub test1()
    Workbooks("Reporting Global.xlsx").Sheets("Reporting").Activate
    For J = Range("F60000").End(xlUp).Row To 1 Step -1
    If Cells(J, 10).Font.Color = vbRed And Cells(J, 6).Value = 0 Then
    Cells(J, 14).Value = " Unauthorized Deposit"
    ElseIf Cells(J, 10).Font.Color = vbRed And Cells(J, 6).Value > 0 Then
    Cells(J, 14).Value = "Deposit in Excess"
    End If
    Next J
    End Sub

    A+
    0
  4. nanoo79 Messages postés 34 Statut Membre
     
    Merci pour ton aide, je viens d'essayer mais cela ne fonctionne pas. Ca ne marque le texte que dans une seule ligne et pas dans toutes les lignes
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,
    Chez moi ca marche. Pouvez-vous mettre votre fichier avec des donnees bidons sur :https://www.cjoint.com/

    ne pas oublier de copier/coller le lien cree dans votre prochain message
    0
  7. nanoo79 Messages postés 34 Statut Membre
     
    ok je fait ca demain soir car l'acces a cjoint est bloque depuis mon poste de travail
    0
  8. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    cells(J,6) et Cells(J, 14) c'est quoi maintenant ???
    0
  9. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Si je refais la fusion cellules, ca fonctionne !!!!! Comment faites-vous la fusion des cellules ?????

    Il semblerait que le fonctionnement soit lie a cette operation de fusion. Je regarde a faire autrement
    0
  10. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour et bon Noel,

    principe: tester si cellule fusionnee

    adaptez les adresses cellules

    Sub test1()
    Workbooks("Reporting Global.xlsm").Sheets("Reporting").Activate
    derlig = Range("A1000").End(xlUp).Row
    For J = 2 To derlig
    If Cells(J, "H").Font.Color = vbRed And Cells(J, 6).Value = 0 Then
    'test si cellule fusionnee
    If Cells(J, "H").MergeArea.Count > 1 Then
    of7 = Cells(J, "H").MergeArea.Count - 1
    'ecriture plage
    Range("L" & J & ":L" & J + of7).Value = " Unauthorized Deposit"
    'increment pointeur
    J = J + of7
    Else
    Cells(J, "L").Value = " Unauthorized Deposit"
    End If
    ElseIf Cells(J, "H").Font.Color = vbRed And Cells(J, 6).Value > 0 Then
    'test si cellule fusionnee
    If Cells(J, "H").MergeArea.Count > 1 Then
    of7 = Cells(J, "H").MergeArea.Count - 1
    'ecriture plage
    Range("L" & J & ":L" & J + of7).Value = " Deposit in Excess"
    'increment pointeur
    J = J + of7
    Else
    Cells(J, "L").Value = " Deposit in Excess"
    End If
    End If
    Next J
    End Sub

    A+
    0
  11. lalaaa33 Messages postés 30 Statut Membre
     
    heuuu c'est en francais que vous parler les gas psk moi j'ai rien compriiiiis ( oui elle et cool ma vie ) ps pour l'inutiliter de ce message svp ne pas en tenir compte ^^
    0
  12. nanoo79 Messages postés 34 Statut Membre
     
    Merci beaucoup, joyeux noel a toi egalement et desolee de ne pas avoir ete trop disponible hier.

    J'ai essayé et ca ne foncitonne pas mais je ne suis pas sur d'avoir bien modifié l'adresse des cellules. Quand tu mets Range("L" & J &":L") Faut il que je remplace L par la lettre de la colonne ou son numero par rapport a Cells (J,14)?

    Je recoit le fichier brut d'une extraction d'un systeme avec les cellules deja fusionnées.
    0
  13. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Quand tu mets Range("L" & J &":L") Faut il que je remplace L Oui, car vous seule connaissez les colonnes de test et destination.

    le code est: Range("L" & J & ":L" & J + of7).Value ou Cells(J, "L").Value suivant les test
    0
  14. nanoo79 Messages postés 34 Statut Membre
     
    Bonjour,

    Désolée de revenir si tard sur le sujet, mais ma macro etait en suspens car le fichier generé par l'IT qui est a la base de cette macro la devait etre modifié et il vient juste d'etre livré.

    J'ai donc bien remplacé les noms des colonnes, mais j'ai uen erreur 438 "Propriété ou methode non géré par cet objet sur la ligne
    If Cells(K, 10).MergerArea.Count > 1 Then
    apres le Else If


    Workbooks("Reporting Global.xlsx").Sheets("Reporting").Activate
    derlig = Range("A60000").End(xlUp).Row
    For K = 2 To derlig
    If Cells(K, 10).Font.Color = vbRed And Cells(K, 6).Value = 0 Then
    'test si cellule est fusionnee
    If Cells(K, 10).MergerArea.Count > 1 Then
    of7 = Cells(K, 10).MergerArea.Count - 1
    'ecriture plage
    Range(14 & K & ":10" & K + of7).Value = "Unauthorized Deposit"
    'increment pointeur
    K = K + of7
    Else
    Cells(K, 14).Value = "Unauthorized Deposit"
    End If

    ElseIf Cells(K, 10).Font.Color = vbRed And Cells(K, 6).Value > 0 Then
    'test si cellule est fusionnee
    If Cells(K, 10).MergerArea.Count > 1 Then
    of7 = Cells(K, 10).MergerArea.Count - 1
    'ecriture plage
    Range(14 & K & ":10" & K + of7).Value = "Deposit in Excess"
    'increment pointeur
    K = K + of7
    Else
    Cells(K, 14).Value = "Deposit in Excess"
    End If

    End If
    Next K

    Saurais tu pourquoi il n'a pas de probleme avec cette ligne dans la premiere boucle mais en a un dans la deuxieme.
    Merci beaucoup pour ton aide.
    0
  15. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Non, mais par contre:

    'ecriture plage que j'ai ecrit
    Range("L" & J & ":L" & J + of7).Value = " Unauthorized Deposit"

    'ecriture plage que vous avez ecrit ne peut pas marcher
    Range(14 & K & ":10" & K + of7).Value = "Unauthorized Deposit"


    quelles sont les nouvelles colonnes????? A priori J a la place de H mais qui remplace L
    0
  16. nanoo79 Messages postés 34 Statut Membre
     
    La colonne L devient la colonne N et la colonne H devient J
    0
  17. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Sub test1()
    Workbooks("Reporting Global.xlsx").Sheets("Reporting").Activate
    derlig = Range("A60000").End(xlUp).Row
    For K = 2 To derlig
    If Cells(K, 10).Font.Color = vbRed And Cells(K, 6).Value = 0 Then
    'test si cellule est fusionnee
    If Cells(K, 10).MergerArea.Count > 1 Then
    of7 = Cells(K, 10).MergerArea.Count - 1
    'ecriture plage
    Range("N" & K & ":N" & K + of7).Value = " Unauthorized Deposit"
    'increment pointeur
    K = K + of7
    Else
    Cells(K, 14).Value = "Unauthorized Deposit"
    End If
    ElseIf Cells(K, 10).Font.Color = vbRed And Cells(K, 6).Value > 0 Then
    'test si cellule est fusionnee
    If Cells(K, 10).MergerArea.Count > 1 Then
    of7 = Cells(K, 10).MergerArea.Count - 1
    'ecriture plage
    Range("N" & K & ":N" & K + of7).Value = " Unauthorized Deposit"
    'increment pointeur
    K = K + of7
    Else
    Cells(K, 14).Value = "Deposit in Excess"
    End If
    End If
    Next K
    End Sub
    0
  18. nanoo79 Messages postés 34 Statut Membre
     
    Merci,

    J'ai modifié mais j'ai une erreur 438 Propriété ou méthode non gérée par cet objet;
    Le debogage pointe sur la ligne de code apres le ELseIF
          If Cells(K, 10).MergerArea.Count > 1 Then

    Je ne comprends pas pourquoi il accepre ce code une fois et pas la deuxieme.
    0
  19. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    il me faudrait votre fichier sans donnees confidentielles parce que je n'ai plus le fichier de test qui m'avait servi a faire le code
    0
  20. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    C'est bon, j'ai recupere le fichier d'origine et il y a bien erreur .......

    Je regarde la chose
    0
  • 1
  • 2