Excel: Appliquer une macro à une colonne
Résolu/Fermé
VdM001
Messages postés
20
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
4 juin 2011
-
23 août 2010 à 14:28
VdM001 Messages postés 20 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 4 juin 2011 - 24 août 2010 à 15:14
VdM001 Messages postés 20 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 4 juin 2011 - 24 août 2010 à 15:14
A voir également:
- Excel: Appliquer une macro à une colonne
- Liste déroulante excel - Guide
- Formule excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Mise en forme conditionnelle excel - Guide
8 réponses
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
23 août 2010 à 18:32
23 août 2010 à 18:32
Bonjour,
Tu pourrais utiliser cette boucle :
for i = 2 to [C65536].end(xlup).row
if cells(i,3) = .....
next i
syntaxe cells() : cells(n° ligne,n° colonne)
eric
Tu pourrais utiliser cette boucle :
for i = 2 to [C65536].end(xlup).row
if cells(i,3) = .....
next i
syntaxe cells() : cells(n° ligne,n° colonne)
eric
Le Pingou
Messages postés
12041
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 avril 2024
1 426
23 août 2010 à 18:30
23 août 2010 à 18:30
Bonjour,
Au passage, je pense vous pouvez le faire sans procédure en utilisant la mise en forme conditionnelle.
Au passage, je pense vous pouvez le faire sans procédure en utilisant la mise en forme conditionnelle.
VdM001
Messages postés
20
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
4 juin 2011
23 août 2010 à 19:24
23 août 2010 à 19:24
J'ai essayé; mais la longueur de la formule qu'on peut entrer est limitée. Et vu que ma formule est assez longue (je sais pas si je pourrais encore la raccourcir), elle rentre pas dans l'espace prévu...
Le Pingou
Messages postés
12041
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 avril 2024
1 426
23 août 2010 à 21:22
23 août 2010 à 21:22
Bonjour,
Est-il possible de voir votre formule ...!
Salutations.
Le Pingou
Est-il possible de voir votre formule ...!
Salutations.
Le Pingou
VdM001
Messages postés
20
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
4 juin 2011
24 août 2010 à 07:46
24 août 2010 à 07:46
Si vous y tenez vraiment; mais accrochez vous bien ^^
=SI(C3=1;SI(OU(D3="A";D3="B";D3="C");SI(B3="";"ok";"flagger"); SI(ET(D3="D";C4=2;OU(D4="A";D4="C"));SI(OU(B3="Yes";B3="No");"ok";"flagger");SI(ET(D3="D";D4="D";B3="no";C4=2);"ok";"flagger")));"NA")
Et encore, les A,B,C,D remplacent des noms un peu plus longs que ça.
=SI(C3=1;SI(OU(D3="A";D3="B";D3="C");SI(B3="";"ok";"flagger"); SI(ET(D3="D";C4=2;OU(D4="A";D4="C"));SI(OU(B3="Yes";B3="No");"ok";"flagger");SI(ET(D3="D";D4="D";B3="no";C4=2);"ok";"flagger")));"NA")
Et encore, les A,B,C,D remplacent des noms un peu plus longs que ça.
Le Pingou
Messages postés
12041
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 avril 2024
1 426
Modifié par Le Pingou le 24/08/2010 à 13:28
Modifié par Le Pingou le 24/08/2010 à 13:28
Bonjour,
Merci pour l'information.
J'ai réalisé un test en prennant les 4 condicions de votre procédure (VBA) et cela marche super bien.
Comme vous avez des cellules fusionnées il est préférable d'utiliser les propositions d'eriiic et de Mike-31.
Salutations.
Le Pingou
Merci pour l'information.
J'ai réalisé un test en prennant les 4 condicions de votre procédure (VBA) et cela marche super bien.
Comme vous avez des cellules fusionnées il est préférable d'utiliser les propositions d'eriiic et de Mike-31.
Salutations.
Le Pingou
VdM001
Messages postés
20
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
4 juin 2011
23 août 2010 à 19:32
23 août 2010 à 19:32
Ok merci eriiic
Finalement j'ai fait quelque chose de similaire: j'ai ajouté:
For Each Cell in Range("C1:C5000").Cells
Et puis dans toutes mes conditions, j'ai changé mon ActiveCell en Cell et ça fonctionne. (en rajoutant un Next à la fin bien sur).
Maintenant, il me reste le problème de la coloration de la ligne entière lorsqu'il y a des cellules fusionnées. Je pense à le régler en ajoutant une condition ou deux mais si quelqu'un a une meilleure idée, je suis preneur.
En tout cas, déjà merci.
Finalement j'ai fait quelque chose de similaire: j'ai ajouté:
For Each Cell in Range("C1:C5000").Cells
Et puis dans toutes mes conditions, j'ai changé mon ActiveCell en Cell et ça fonctionne. (en rajoutant un Next à la fin bien sur).
Maintenant, il me reste le problème de la coloration de la ligne entière lorsqu'il y a des cellules fusionnées. Je pense à le régler en ajoutant une condition ou deux mais si quelqu'un a une meilleure idée, je suis preneur.
En tout cas, déjà merci.
Mike-31
Messages postés
18313
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 avril 2024
5 073
23 août 2010 à 23:11
23 août 2010 à 23:11
Salut,
regarde ce code qui recherche cellules fusionnées de A2 à F100 à adapter
Sub ColoriseLignesCellulesFusionnees()
Dim cell As Range
Dim Maplage As Range
Set Maplage = Range("A2:F100")
With ActiveSheet
For Each cell In Maplage
If cell.MergeCells = True Then cell.EntireRow.Interior.ColorIndex = 3
Next cell
End With
End Sub
regarde ce code qui recherche cellules fusionnées de A2 à F100 à adapter
Sub ColoriseLignesCellulesFusionnees()
Dim cell As Range
Dim Maplage As Range
Set Maplage = Range("A2:F100")
With ActiveSheet
For Each cell In Maplage
If cell.MergeCells = True Then cell.EntireRow.Interior.ColorIndex = 3
Next cell
End With
End Sub
VdM001
Messages postés
20
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
4 juin 2011
24 août 2010 à 07:47
24 août 2010 à 07:47
Ok
Merci beaucoup
Merci beaucoup
VdM001
Messages postés
20
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
4 juin 2011
24 août 2010 à 14:00
24 août 2010 à 14:00
Heu; en fait il y a encore un petit souci.
Votre fonction fonctionne bien; mais elle ne colore que les lignes autour de la cellule fusionnée mais pas la cellule fusionnée elle-même... ^^
Donc voilà, si vous avez une nouvelle idée, je suis preneur car moi je n'ai toujours pas trouvé...
Déjà merci
Votre fonction fonctionne bien; mais elle ne colore que les lignes autour de la cellule fusionnée mais pas la cellule fusionnée elle-même... ^^
Donc voilà, si vous avez une nouvelle idée, je suis preneur car moi je n'ai toujours pas trouvé...
Déjà merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mike-31
Messages postés
18313
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 avril 2024
5 073
Modifié par Mike-31 le 24/08/2010 à 14:18
Modifié par Mike-31 le 24/08/2010 à 14:18
Re,
Je travaille sans déplacement après validation et cela peut venir de cette fonction si elle est activée dans ton système.
tu peux le contrôler dans les options d'Excel (Outils/Option/onglet Modification
regarde s'il y a une coche est en face déplacer la sélection après validation
ou directement sur la feuille de calcul, pointe la cellule par exemple B5 et clic sur entrée, dis moi dans quelle cellule se trouve la cellule active après.
Si la cellule active se déplace, soit tu décoches cette fonction soit je revois le code en fonction du déplacement de la cellule
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Je travaille sans déplacement après validation et cela peut venir de cette fonction si elle est activée dans ton système.
tu peux le contrôler dans les options d'Excel (Outils/Option/onglet Modification
regarde s'il y a une coche est en face déplacer la sélection après validation
ou directement sur la feuille de calcul, pointe la cellule par exemple B5 et clic sur entrée, dis moi dans quelle cellule se trouve la cellule active après.
Si la cellule active se déplace, soit tu décoches cette fonction soit je revois le code en fonction du déplacement de la cellule
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
VdM001
Messages postés
20
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
4 juin 2011
24 août 2010 à 14:47
24 août 2010 à 14:47
Nop ça ne change rien. Moi je travaille avec le déplacement après validation mais j'ai essayé sans et c'est le même résultat.
Mais je suis pas sur de m'être bien exprimé sur le souci.
Donc votre fonction colore bien les lignes de la cellule fusionnée (donc si la cellule fusionnée prend 3 lignes, les 3 lignes sont colorées) mais la cellule fusionnée en elle-même reste incolore.
Mais je suis pas sur de m'être bien exprimé sur le souci.
Donc votre fonction colore bien les lignes de la cellule fusionnée (donc si la cellule fusionnée prend 3 lignes, les 3 lignes sont colorées) mais la cellule fusionnée en elle-même reste incolore.
Mike-31
Messages postés
18313
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 avril 2024
5 073
24 août 2010 à 14:55
24 août 2010 à 14:55
Re,
Normal je n'avais traité que les cellules fusionnées horizontalement
j'ai rajouter une ligne au code
Sub ColoriseLignesCellulesFusionnees()
Dim cell As Range
Dim Maplage As Range
Set Maplage = Range("A2:F100")
With ActiveSheet
For Each cell In Maplage
If cell.MergeCells = True Then cell.EntireRow.Interior.ColorIndex = 3
If cell.MergeCells = True Then cell.Interior.ColorIndex = 3
Next cell
End With
End Sub
Par contre il est possible de coloriser que les cellules fusionnées, dans ce cas supprime cette ligne
If cell.MergeCells = True Then cell.EntireRow.Interior.ColorIndex = 3
Normal je n'avais traité que les cellules fusionnées horizontalement
j'ai rajouter une ligne au code
Sub ColoriseLignesCellulesFusionnees()
Dim cell As Range
Dim Maplage As Range
Set Maplage = Range("A2:F100")
With ActiveSheet
For Each cell In Maplage
If cell.MergeCells = True Then cell.EntireRow.Interior.ColorIndex = 3
If cell.MergeCells = True Then cell.Interior.ColorIndex = 3
Next cell
End With
End Sub
Par contre il est possible de coloriser que les cellules fusionnées, dans ce cas supprime cette ligne
If cell.MergeCells = True Then cell.EntireRow.Interior.ColorIndex = 3
VdM001
Messages postés
20
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
4 juin 2011
24 août 2010 à 15:14
24 août 2010 à 15:14
Okok
Ca fonctionne parfaitement maintenant.
Merci infiniment
Ca fonctionne parfaitement maintenant.
Merci infiniment