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

Fermé
nanoo79 Messages postés 34 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 19 novembre 2014 - 23 déc. 2013 à 16:45
nanoo79 Messages postés 34 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 19 novembre 2014 - 27 mars 2014 à 13:03
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

f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
23 déc. 2013 à 16:54
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
nanoo79 Messages postés 34 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 19 novembre 2014
23 déc. 2013 à 18:41
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
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
Modifié par f894009 le 23/12/2013 à 19:24
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
nanoo79 Messages postés 34 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 19 novembre 2014
24 déc. 2013 à 10:11
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
24 déc. 2013 à 11:20
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
nanoo79 Messages postés 34 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 19 novembre 2014
24 déc. 2013 à 12:10
ok je fait ca demain soir car l'acces a cjoint est bloque depuis mon poste de travail
0
nanoo79 Messages postés 34 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 19 novembre 2014
24 déc. 2013 à 13:21
Voici le lien du fichier: https://www.cjoint.com/c/CLynteACqG4


J'ai supprimé quelques colonnes l'equivalent de cells (J,10) se trouve en cells(J,8) desormais.
0
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
24 déc. 2013 à 16:04
Re,

cells(J,6) et Cells(J, 14) c'est quoi maintenant ???
0
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
Modifié par f894009 le 24/12/2013 à 17:18
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
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
25 déc. 2013 à 08:05
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
lalaaa33 Messages postés 11 Date d'inscription mercredi 25 décembre 2013 Statut Membre Dernière intervention 26 décembre 2013
25 déc. 2013 à 08:09
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
nanoo79 Messages postés 34 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 19 novembre 2014
26 déc. 2013 à 11:30
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
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
26 déc. 2013 à 17:04
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
nanoo79 Messages postés 34 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 19 novembre 2014
25 mars 2014 à 16:33
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
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
Modifié par f894009 le 26/03/2014 à 08:10
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
nanoo79 Messages postés 34 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 19 novembre 2014
27 mars 2014 à 09:46
La colonne L devient la colonne N et la colonne H devient J
0
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
27 mars 2014 à 10:12
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
nanoo79 Messages postés 34 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 19 novembre 2014
27 mars 2014 à 11:18
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
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
27 mars 2014 à 11:22
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
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
27 mars 2014 à 11:35
Re,

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

Je regarde la chose
0