Pouvoir ajouter des colones sans modifier ma macro
Résolu/Fermé
A voir également:
- Pouvoir ajouter des colones sans modifier ma macro
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment modifier un pdf - Guide
- Modifier story facebook - Guide
15 réponses
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
11 déc. 2014 à 11:50
11 déc. 2014 à 11:50
Bonjour,
Tu portes bien ton pseudo au vu de la macro...
Une mise en forme conditionnelle sur les colonnes K, L et M n'est pas possible (si tu as un Excel récent, tu peux avoir un nombre de conditions illimité) ? Parce que la macro se moque du contenu de ces colonnes, elle coloriera toujours celles-ci et pas d'autres si tu insères ou supprimes des colonnes.
A+
Tu portes bien ton pseudo au vu de la macro...
Une mise en forme conditionnelle sur les colonnes K, L et M n'est pas possible (si tu as un Excel récent, tu peux avoir un nombre de conditions illimité) ? Parce que la macro se moque du contenu de ces colonnes, elle coloriera toujours celles-ci et pas d'autres si tu insères ou supprimes des colonnes.
A+
Les valeurs en K,L et M ne sont pas les mêmes donc je ne sais pas gérer les mises en forme conditionnelles dans ces cas là. De plus j'ai incorporé un comparatif entre les colonnes M et N (coloration de N si différent de M) et c'est un fichier que je recréé entièrement (via une macro que l'on m'a fourni) et il serait bien plus fastidieux il me semble de régler les mises en forme conditionnelles chaque mois et ce pour 20 affectations différentes. Là un simple CTRL O me fait le taf et je peut éventuellement donner ma macro à mes collègues si elle les intéresse.
PS. voici la bonne macro. Sur celle que j'ai fourni, il y a des traces de mes expérimentations
PS. voici la bonne macro. Sur celle que j'ai fourni, il y a des traces de mes expérimentations
Sub Colorer_cumul_prog() ' ' Colorer_cumul_prog Macro ' ' Touche de raccourci du clavier: Ctrl+O ' Dim l As Long Dim f As Integer Dim Plage As Range Dim Lignes As Long For f = 1 To Sheets.Count Valeur = Sheets(f).Range("M" & Rows.Count).End(xlUp).Row For i = 1 To Valeur Sheets(f).Range("n" & i).Interior.ColorIndex = 0 If Sheets(f).Range("M" & i).Value = "INS01" Then Sheets(f).Range("M" & i).Interior.ColorIndex = 8 Sheets(f).Range("K" & i).Interior.ColorIndex = 8 Sheets(f).Range("L" & i).Interior.ColorIndex = 8 End If If Sheets(f).Range("M" & i).Value = "INS02" Then Sheets(f).Range("M" & i).Interior.ColorIndex = 6 Sheets(f).Range("K" & i).Interior.ColorIndex = 6 Sheets(f).Range("L" & i).Interior.ColorIndex = 6 End If If Sheets(f).Range("M" & i).Value = "INS03" Then Sheets(f).Range("M" & i).Interior.ColorIndex = 26 Sheets(f).Range("K" & i).Interior.ColorIndex = 26 Sheets(f).Range("L" & i).Interior.ColorIndex = 26 End If If Sheets(f).Range("M" & i).Value = "INS04" Then Sheets(f).Range("M" & i).Interior.Color = RGB(242, 221, 220) Sheets(f).Range("K" & i).Interior.Color = RGB(242, 221, 220) Sheets(f).Range("L" & i).Interior.Color = RGB(242, 221, 220) End If If Sheets(f).Range("M" & i).Value = "INS05" Then Sheets(f).Range("M" & i).Interior.ColorIndex = 45 Sheets(f).Range("K" & i).Interior.ColorIndex = 45 Sheets(f).Range("L" & i).Interior.ColorIndex = 45 End If If Sheets(f).Range("M" & i).Value = "INS06" Then Sheets(f).Range("M" & i).Interior.ColorIndex = 35 Sheets(f).Range("K" & i).Interior.ColorIndex = 35 Sheets(f).Range("L" & i).Interior.ColorIndex = 35 End If If Sheets(f).Range("M" & i).Value = "INS07" Then Sheets(f).Range("M" & i).Interior.ColorIndex = 6 Sheets(f).Range("K" & i).Interior.ColorIndex = 6 Sheets(f).Range("L" & i).Interior.ColorIndex = 6 End If If Sheets(f).Range("M" & i).Value = "INS08" Then Sheets(f).Range("M" & i).Interior.ColorIndex = 20 Sheets(f).Range("K" & i).Interior.ColorIndex = 20 Sheets(f).Range("L" & i).Interior.ColorIndex = 20 End If If Sheets(f).Range("M" & i).Value = "INS09" Then Sheets(f).Range("M" & i).Interior.Color = RGB(204, 153, 255) Sheets(f).Range("K" & i).Interior.Color = RGB(204, 153, 255) Sheets(f).Range("L" & i).Interior.Color = RGB(204, 153, 255) End If If Sheets(f).Range("M" & i).Value = "INS10" Then Sheets(f).Range("M" & i).Interior.ColorIndex = 6 Sheets(f).Range("K" & i).Interior.ColorIndex = 6 Sheets(f).Range("L" & i).Interior.ColorIndex = 6 End If If Sheets(f).Range("M" & i).Value = "INS11" Then Sheets(f).Range("M" & i).Interior.Color = RGB(146, 208, 80) Sheets(f).Range("K" & i).Interior.Color = RGB(146, 208, 80) Sheets(f).Range("L" & i).Interior.Color = RGB(146, 208, 80) End If If Sheets(f).Range("M" & i).Value = "INS12" Then Sheets(f).Range("M" & i).Interior.Color = RGB(242, 221, 220) Sheets(f).Range("K" & i).Interior.Color = RGB(242, 221, 220) Sheets(f).Range("L" & i).Interior.Color = RGB(242, 221, 220) End If If Sheets(f).Range("M" & i).Value = "INS13" Then Sheets(f).Range("M" & i).Interior.Color = RGB(215, 228, 188) Sheets(f).Range("K" & i).Interior.Color = RGB(215, 228, 188) Sheets(f).Range("L" & i).Interior.Color = RGB(215, 228, 188) End If If Sheets(f).Range("M" & i).Value = "INS14" Then Sheets(f).Range("M" & i).Interior.ColorIndex = 6 Sheets(f).Range("K" & i).Interior.ColorIndex = 6 Sheets(f).Range("L" & i).Interior.ColorIndex = 6 End If If Sheets(f).Range("M" & i).Value = "INS15" Then Sheets(f).Range("M" & i).Interior.Color = RGB(146, 208, 80) Sheets(f).Range("K" & i).Interior.Color = RGB(146, 208, 80) Sheets(f).Range("L" & i).Interior.Color = RGB(146, 208, 80) End If If Sheets(f).Range("M" & i).Value = "INS16" Then Sheets(f).Range("M" & i).Interior.Color = RGB(242, 221, 220) Sheets(f).Range("K" & i).Interior.Color = RGB(242, 221, 220) Sheets(f).Range("L" & i).Interior.Color = RGB(242, 221, 220) End If If Sheets(f).Range("M" & i).Value = "INS17" Then Sheets(f).Range("M" & i).Interior.ColorIndex = 24 Sheets(f).Range("K" & i).Interior.ColorIndex = 24 Sheets(f).Range("L" & i).Interior.ColorIndex = 24 End If If Sheets(f).Range("M" & i).Value = "INS18" Then Sheets(f).Range("M" & i).Interior.ColorIndex = 6 Sheets(f).Range("K" & i).Interior.ColorIndex = 6 Sheets(f).Range("L" & i).Interior.ColorIndex = 6 End If If Sheets(f).Range("M" & i).Value = "INS19" Then Sheets(f).Range("M" & i).Interior.ColorIndex = 35 Sheets(f).Range("K" & i).Interior.ColorIndex = 35 Sheets(f).Range("L" & i).Interior.ColorIndex = 35 End If If Sheets(f).Range("M" & i).Value = "INS99" Then Sheets(f).Range("M" & i).Interior.ColorIndex = 15 Sheets(f).Range("K" & i).Interior.ColorIndex = 15 Sheets(f).Range("L" & i).Interior.ColorIndex = 15 End If If Sheets(f).Range("M" & i).Value <> Sheets(f).Range("N" & i) Then Sheets(f).Range("N" & i).Interior.ColorIndex = 3 End If If Sheets(f).Range("N" & i).Value = "Déjà fait par" Then Sheets(f).Range("N" & i).Interior.ColorIndex = 0 End If Next i Next f End Sub
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
11 déc. 2014 à 13:36
11 déc. 2014 à 13:36
Les valeurs en K,L et M ne sont pas les mêmes donc je ne sais pas gérer les mises en forme conditionnelles dans ces cas là.
--> Il est faisable de faire une MFC par rapport à la valeur d'une autre cellule que celle qu'on veut mettre en forme.
il serait bien plus fastidieux
OK
Là un simple CTRL O
Faut faire attention à l'utilisation d'un raccourci utilisé pour d'autres choses (ici, l'ouverture d'un fichier). Un jour j'ai voulu aider un collègue et ai voulu annuler une saisie ; mon Ctrl-Z a supprimé les saisies qu'il avait mis une heure à faire.
J'en reviens du coup au problème initial : qu'est-ce qui ne fonctionne pas à l'ajout d'une colonne ? Et quand ajoutes-tu cette colonne ? Ou quel est le résultat escompté et en quoi le résultat obtenu actuellement est-il différent ?
--> Il est faisable de faire une MFC par rapport à la valeur d'une autre cellule que celle qu'on veut mettre en forme.
il serait bien plus fastidieux
OK
Là un simple CTRL O
Faut faire attention à l'utilisation d'un raccourci utilisé pour d'autres choses (ici, l'ouverture d'un fichier). Un jour j'ai voulu aider un collègue et ai voulu annuler une saisie ; mon Ctrl-Z a supprimé les saisies qu'il avait mis une heure à faire.
J'en reviens du coup au problème initial : qu'est-ce qui ne fonctionne pas à l'ajout d'une colonne ? Et quand ajoutes-tu cette colonne ? Ou quel est le résultat escompté et en quoi le résultat obtenu actuellement est-il différent ?
Bourrineur
Messages postés
3
Date d'inscription
vendredi 12 décembre 2014
Statut
Membre
Dernière intervention
13 décembre 2014
13 déc. 2014 à 09:37
13 déc. 2014 à 09:37
Bonjour,
Désolé de ne pas t'avoir répondu mais je n'avais pas vu ce post coincé entre le mien et celui de Maurice. Pour le raccourci, étant donné que je ne me sert pas de CTRL O, je n'ai pas vu de problème. Maintenant vu ce que tu me dit, je vais voir pour une autre option (créer un bouton sur la feuille par ex.). Merci pour l'info.
Désolé de ne pas t'avoir répondu mais je n'avais pas vu ce post coincé entre le mien et celui de Maurice. Pour le raccourci, étant donné que je ne me sert pas de CTRL O, je n'ai pas vu de problème. Maintenant vu ce que tu me dit, je vais voir pour une autre option (créer un bouton sur la feuille par ex.). Merci pour l'info.
Bonjour
je pense quil faut refaire ta macro
Voila un ex:
A+
Maurice
je pense quil faut refaire ta macro
Voila un ex:
Sub Colorer()
Dim L As Long
Dim F As Integer
Dim Plage As Range
Dim Lignes As Long
For F = 1 To Sheets.Count
With Sheets(F)
.Select
Valeur = .Range("M" & Rows.Count).End(xlUp).Row
For L = 1 To Valeur
Coul = -4142
.Range("N" & L).Interior.ColorIndex = Coul
Select Case .Range("M" & L).Value
Case "INS01"
Coul = 8
Case "INS02"
Coul = 6
Case "INS03"
Coul = 26
End Select
.Range("M" & L).Interior.ColorIndex = Coul
.Range("K" & L).Interior.ColorIndex = Coul
.Range("L" & L).Interior.ColorIndex = Coul
If .Range("M" & L).Value <> .Range("N" & L) Then
.Range("N" & L).Interior.ColorIndex = 3
End If
Next
End With
Next
End Sub
A+
Maurice
Bon, j'ai refait la macro en suivant la méthode de Maurice. Par contre ej ne peut toujours pas ajouter de colonnes sans que cela ne pose de problèmes (j'ajoute des colonnes tous les 6 mois sur mes fichiers).
Voici la nouvelle version
Sub Colorer2()
Dim L As Long
Dim F As Integer
Dim Plage As Range
Dim Lignes As Long
For F = 1 To Sheets.Count
With Sheets(F)
.Select
Valeur = .Range("M" & Rows.Count).End(xlUp).Row
For L = 1 To Valeur
Coul = -4142
.Range("N" & L).Interior.ColorIndex = Coul
Select Case .Range("M" & L).Value
Case "INS01"
Coul = 8
Case "INS02"
Coul = 6
Case "INS03"
Coul = 26
Case "INS04"
Coul = 38
Case "INS05"
Coul = 45
Case "INS06"
Coul = 35
Case "INS07"
Coul = 6
Case "INS08"
Coul = 20
Case "INS09"
Coul = 39
Case "INS10"
Coul = 6
Case "INS11"
Coul = 43
Case "INS12"
Coul = 38
Case "INS13"
Coul = 35
Case "INS14"
Coul = 6
Case "INS15"
Coul = 43
Case "INS16"
Coul = 38
Case "INS17"
Coul = 24
Case "INS18"
Coul = 6
Case "INS19"
Coul = 35
Case "INS99"
Coul = 15
End Select
.Range("M" & L).Interior.ColorIndex = Coul
.Range("K" & L).Interior.ColorIndex = Coul
.Range("L" & L).Interior.ColorIndex = Coul
If .Range("M" & L).Value <> .Range("N" & L) Then
.Range("N" & L).Interior.ColorIndex = 3
End If
If Sheets(F).Range("N" & L).Value = "Déjà fait par" Then
Sheets(F).Range("N" & L).Interior.ColorIndex = 0
End If
Next
End With
Next
End Sub
PS : les colonnes ciblées ont pour titre "Date" K, "Prec" L, "Affect" M et "Déjà fait par" N.
Voici la nouvelle version
Sub Colorer2()
Dim L As Long
Dim F As Integer
Dim Plage As Range
Dim Lignes As Long
For F = 1 To Sheets.Count
With Sheets(F)
.Select
Valeur = .Range("M" & Rows.Count).End(xlUp).Row
For L = 1 To Valeur
Coul = -4142
.Range("N" & L).Interior.ColorIndex = Coul
Select Case .Range("M" & L).Value
Case "INS01"
Coul = 8
Case "INS02"
Coul = 6
Case "INS03"
Coul = 26
Case "INS04"
Coul = 38
Case "INS05"
Coul = 45
Case "INS06"
Coul = 35
Case "INS07"
Coul = 6
Case "INS08"
Coul = 20
Case "INS09"
Coul = 39
Case "INS10"
Coul = 6
Case "INS11"
Coul = 43
Case "INS12"
Coul = 38
Case "INS13"
Coul = 35
Case "INS14"
Coul = 6
Case "INS15"
Coul = 43
Case "INS16"
Coul = 38
Case "INS17"
Coul = 24
Case "INS18"
Coul = 6
Case "INS19"
Coul = 35
Case "INS99"
Coul = 15
End Select
.Range("M" & L).Interior.ColorIndex = Coul
.Range("K" & L).Interior.ColorIndex = Coul
.Range("L" & L).Interior.ColorIndex = Coul
If .Range("M" & L).Value <> .Range("N" & L) Then
.Range("N" & L).Interior.ColorIndex = 3
End If
If Sheets(F).Range("N" & L).Value = "Déjà fait par" Then
Sheets(F).Range("N" & L).Interior.ColorIndex = 0
End If
Next
End With
Next
End Sub
PS : les colonnes ciblées ont pour titre "Date" K, "Prec" L, "Affect" M et "Déjà fait par" N.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re
corrige deja macro
si ti rajoute une colonne je voie pas comment faire en automatique
A+
Maurice
corrige deja macro
If .Range("N" & L).Value = "Déjà fait par" Then .Range("N" & L).Interior.ColorIndex = -4142 End If
si ti rajoute une colonne je voie pas comment faire en automatique
A+
Maurice
Voilà, c'est corrigé.
En fait ce qu'il faut c'est que la macro soit définie pour agir en fonction des titres des colonnes et non pas de leurs lettres d'origine.
En fait ce qu'il faut c'est que la macro soit définie pour agir en fonction des titres des colonnes et non pas de leurs lettres d'origine.
re
si tu ajoute une colonne sa change quoi dans ta macro
la source ou les cibles
car la sans modele dur a voir
A+
Maurice
si tu ajoute une colonne sa change quoi dans ta macro
la source ou les cibles
car la sans modele dur a voir
A+
Maurice
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
11 déc. 2014 à 19:49
11 déc. 2014 à 19:49
Bonjour,
nomme ta cellule M1 Affect par exemple et :
Le nom suivra les insertions/suppressions de lignes et colonnes.
En plus ton code sera plus lisible.
Et tu pourrais définir tes chaines et couleurs affectées sur une feuille de paramétrage à part où tu cherches la chaine et récupères la couleur.
Plus simple à modifier (liste et couleurs) et code plus court.
Exemple : https://www.cjoint.com/c/DLlt4g76DDZ
eric
nomme ta cellule M1 Affect par exemple et :
Range("Affect").Offset(L - 1).Interior.ColorIndex = 3
Le nom suivra les insertions/suppressions de lignes et colonnes.
En plus ton code sera plus lisible.
Et tu pourrais définir tes chaines et couleurs affectées sur une feuille de paramétrage à part où tu cherches la chaine et récupères la couleur.
Plus simple à modifier (liste et couleurs) et code plus court.
Exemple : https://www.cjoint.com/c/DLlt4g76DDZ
eric
Voici le fichier
Le but est de colorer sur la feuille "cumul. tout les 6 mois je rajoute une colonne Horo.
http://www.cjoint.com/data/0LlusKarvYb.htm
Le but est de colorer sur la feuille "cumul. tout les 6 mois je rajoute une colonne Horo.
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
11 déc. 2014 à 22:16
11 déc. 2014 à 22:16
Je crois que tu as raté ce post : https://forums.commentcamarche.net/forum/affich-31186637-pouvoir-ajouter-des-colones-sans-modifier-ma-macro#9
eric
eric
Non, je l'ai vu, mais ce n'est pas un menu déroulant par cellule que je veux. A moins que je n'ai rien compris à ton exemple (ce qui est fort possible étant donné que comme je l'ai dit, je n'y connais rien en macro. Je prend des bouts par ci par là et j'adapte à mes besoins et en fonction de ce que j'ai pu en comprendre).
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
Modifié par eriiic le 11/12/2014 à 23:27
Modifié par eriiic le 11/12/2014 à 23:27
Ca c'est la 2ème partie. Pour faire autrement que 20 Case "xxx" dans ton code.
C'est un plus, avec un exemple pour te montrer... A toi d'adapter si ça t'intéresse
Il faut lire le début aussi !
Et même si la réponse ne te convient pas il est de bon ton de faire un retour à ceux qui prennent du temps pour toi.
eric
C'est un plus, avec un exemple pour te montrer... A toi d'adapter si ça t'intéresse
Il faut lire le début aussi !
Et même si la réponse ne te convient pas il est de bon ton de faire un retour à ceux qui prennent du temps pour toi.
eric
bourrineur
>
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
11 déc. 2014 à 23:40
11 déc. 2014 à 23:40
Pour le retour, désolé mais je ne faisais qu'un passage rapide sur le Pc à ce moment là.
En ce qui concerne le début, je pensait que ça avais un lien avec l'exemple (mais du coup je comprend mieux pourquoi je n'arrivais pas a trouver le rapport entre les 2)
.
Par contre
"Range("Affect").Offset(L - 1).Interior.ColorIndex = 3"
Je ne comprend pas ce que ça dit ni où je doit le mettre.
"nomme ta cellule M1 Affect" et alors là, je nage complet.
Après, ne pas se méprendre, j'apprécie grandement le temps qui m'est accordé par vous et le mesure à sa juste valeur. J'ai repris le code de Maurice car j'ai pu comprendre ce que ce code voulais dire et adapter des éléments qui me manquait. Mais j'ai d'énormes lacunes. je ne comprend pas tout ce qui se passe autour ( DIM, NEXT, END IF ...)
En ce qui concerne le début, je pensait que ça avais un lien avec l'exemple (mais du coup je comprend mieux pourquoi je n'arrivais pas a trouver le rapport entre les 2)
.
Par contre
"Range("Affect").Offset(L - 1).Interior.ColorIndex = 3"
Je ne comprend pas ce que ça dit ni où je doit le mettre.
"nomme ta cellule M1 Affect" et alors là, je nage complet.
Après, ne pas se méprendre, j'apprécie grandement le temps qui m'est accordé par vous et le mesure à sa juste valeur. J'ai repris le code de Maurice car j'ai pu comprendre ce que ce code voulais dire et adapter des éléments qui me manquait. Mais j'ai d'énormes lacunes. je ne comprend pas tout ce qui se passe autour ( DIM, NEXT, END IF ...)
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
12 déc. 2014 à 00:12
12 déc. 2014 à 00:12
J'ai pris la colonne M en exemple (nomme ta cellule M1 Affect), cette ligne remplace donc :
par :
.Range("K" & L).Interior.ColorIndex = Coul
par :
Range("Affect").Offset(L - 1).Interior.ColorIndex = Coul
bourrineur
>
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
Modifié par bourrineur le 12/12/2014 à 01:17
Modifié par bourrineur le 12/12/2014 à 01:17
Ok. Donc en suivant ta méthode (j'ai trouvé via Google ce que tu voulais dire par "nomme ta cellule M1 Affect"), J'obtiens ceci :
Sub Colorer2()
Dim L As Long
Dim F As Integer
Dim Plage As Range
Dim Lignes As Long
With Sheets("Cumul")
.Select
Valeur = .Range("M" & Rows.Count).End(xlUp).Row
For L = 1 To Valeur
Coul = -4142
.Range("Déjà_fait_par").Offset(L - 1).Interior.ColorIndex = Coul
Select Case .Range("Affect").Offset(L - 1).Value
Case "INS01"
Coul = 8
Case "INS02"
Coul = 6
Case "INS03"
Coul = 26
Case "INS04"
Coul = 38
Case "INS05"
Coul = 45
Case "INS06"
Coul = 35
Case "INS07"
Coul = 6
Case "INS08"
Coul = 20
Case "INS09"
Coul = 39
Case "INS10"
Coul = 6
Case "INS11"
Coul = 43
Case "INS12"
Coul = 38
Case "INS13"
Coul = 35
Case "INS14"
Coul = 6
Case "INS15"
Coul = 43
Case "INS16"
Coul = 38
Case "INS17"
Coul = 24
Case "INS18"
Coul = 6
Case "INS19"
Coul = 35
Case "INS99"
Coul = 15
End Select
.Range("Affect").Offset(L - 1).Interior.ColorIndex = Coul
.Range("Date").Offset(L - 1).Interior.ColorIndex = Coul
.Range("Prec").Offset(L - 1).Interior.ColorIndex = Coul
If .Range("Affect").Offset(L - 1).Value <> .Range("Déjà_fait_par").Offset(L - 1) Then
.Range("Déjà_fait_par").Offset(L - 1).Interior.ColorIndex = 3
End If
If Sheets("Cumul").Range("Déjà_fait_par").Offset(L - 1).Value = "Déjà fait par" Then
Sheets("Cumul").Range("Déjà_fait_par").Offset(L - 1).Interior.ColorIndex = -4142
End If
Next
End With
End Sub
Ça marche bien. Par contre si j'ai bien suivi, je suis obligé de renommer les colonnes pour chaque fichier que je créé. Il n'y a pas un moyen d'intégrer à la macro une commande qui renomme les colonnes en fonction de l'intitulé de la 1ère ligne ?
Edit : Par contre je n'ai pas modifié la ligne
Valeur = .Range("M" & Rows.Count).End(xlUp).Row
ça marche malgré tout mais du coup je ne comprend pas à quoi elle sert
Sub Colorer2()
Dim L As Long
Dim F As Integer
Dim Plage As Range
Dim Lignes As Long
With Sheets("Cumul")
.Select
Valeur = .Range("M" & Rows.Count).End(xlUp).Row
For L = 1 To Valeur
Coul = -4142
.Range("Déjà_fait_par").Offset(L - 1).Interior.ColorIndex = Coul
Select Case .Range("Affect").Offset(L - 1).Value
Case "INS01"
Coul = 8
Case "INS02"
Coul = 6
Case "INS03"
Coul = 26
Case "INS04"
Coul = 38
Case "INS05"
Coul = 45
Case "INS06"
Coul = 35
Case "INS07"
Coul = 6
Case "INS08"
Coul = 20
Case "INS09"
Coul = 39
Case "INS10"
Coul = 6
Case "INS11"
Coul = 43
Case "INS12"
Coul = 38
Case "INS13"
Coul = 35
Case "INS14"
Coul = 6
Case "INS15"
Coul = 43
Case "INS16"
Coul = 38
Case "INS17"
Coul = 24
Case "INS18"
Coul = 6
Case "INS19"
Coul = 35
Case "INS99"
Coul = 15
End Select
.Range("Affect").Offset(L - 1).Interior.ColorIndex = Coul
.Range("Date").Offset(L - 1).Interior.ColorIndex = Coul
.Range("Prec").Offset(L - 1).Interior.ColorIndex = Coul
If .Range("Affect").Offset(L - 1).Value <> .Range("Déjà_fait_par").Offset(L - 1) Then
.Range("Déjà_fait_par").Offset(L - 1).Interior.ColorIndex = 3
End If
If Sheets("Cumul").Range("Déjà_fait_par").Offset(L - 1).Value = "Déjà fait par" Then
Sheets("Cumul").Range("Déjà_fait_par").Offset(L - 1).Interior.ColorIndex = -4142
End If
Next
End With
End Sub
Ça marche bien. Par contre si j'ai bien suivi, je suis obligé de renommer les colonnes pour chaque fichier que je créé. Il n'y a pas un moyen d'intégrer à la macro une commande qui renomme les colonnes en fonction de l'intitulé de la 1ère ligne ?
Edit : Par contre je n'ai pas modifié la ligne
Valeur = .Range("M" & Rows.Count).End(xlUp).Row
ça marche malgré tout mais du coup je ne comprend pas à quoi elle sert
Bonjour
Voila un model
http://cjoint.com/?3LmlNyNYMkF
tu rajout ta colonne dans Cumul1
et modifier la macro Cumul1 pour voir la diference et apres on voie si on peux fair une seule macro
A+
Maurice
Voila un model
http://cjoint.com/?3LmlNyNYMkF
tu rajout ta colonne dans Cumul1
et modifier la macro Cumul1 pour voir la diference et apres on voie si on peux fair une seule macro
A+
Maurice
Bonjour,
Voilà
http://cjoint.com/?0Lmt4wDPgbu
En cumul je n'ai rien touché et en cumul1 j'ai ajouté ma colonne et modifié la macro
Voilà
http://cjoint.com/?0Lmt4wDPgbu
En cumul je n'ai rien touché et en cumul1 j'ai ajouté ma colonne et modifié la macro
Bonjour
test avec la colonne "Affect" a ne pas changer le nom de la colonne
a tester bien sur
A+
Maurice
test avec la colonne "Affect" a ne pas changer le nom de la colonne
Sub Colorer() Dim L As Long Dim F As Integer Dim Plage As Range Dim Lignes As Long Dim Col As Long Application.ScreenUpdating = False Sheets(Feuil6.Name).Select Col = Cells.Find(What:="Affect").Column Lignes = Cells(Rows.Count, Col).End(xlUp).Row For L = 1 To Lignes Coul = -4142 Cells(L, Col + 1).Interior.ColorIndex = Coul Select Case Cells(L, Col).Value Case "INS01" Coul = 8 Case "INS02" Coul = 6 Case "INS03" Coul = 26 End Select Range(Cells(L, Col - 2), Cells(L, Col)).Interior.ColorIndex = Coul If Cells(L, Col).Value <> Cells(L, Col + 1) Then Cells(L, Col + 1).Interior.ColorIndex = 3 End If If Cells(L, Col + 1).Value = "Déjà fait par" Then Cells(L, Col + 1).Interior.ColorIndex = -4142 End If Next Application.ScreenUpdating = True End Sub
a tester bien sur
A+
Maurice
Bourrineur
Messages postés
3
Date d'inscription
vendredi 12 décembre 2014
Statut
Membre
Dernière intervention
13 décembre 2014
13 déc. 2014 à 09:39
13 déc. 2014 à 09:39
Edit : Merci à vous trois...
Bourrineur
Messages postés
3
Date d'inscription
vendredi 12 décembre 2014
Statut
Membre
Dernière intervention
13 décembre 2014
Modifié par Bourrineur le 12/12/2014 à 22:08
Modifié par Bourrineur le 12/12/2014 à 22:08
Par contre je ne voit pas comment modifier le titre pour mettre "Résolu"
Edit : ben si, finalement j'ai trouvé...
Edit : ben si, finalement j'ai trouvé...