• Initiateur de la discussion Initiateur de la discussion jad73
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jad73

XLDnaute Occasionnel
bonjour
j'ai 2 feuilles,dans la feuil1 j'ai un code qui fonctionne,dans la feuil2 jai le meme code un peu plus long et il ne fonctionne qu'a moitié
feuil1"set c = ws.range("c3:J7,S3:ab6,ah3:aj32,at13:at32") ok
feuil2"set c = ws.range("ao4:as60,bd4:bh60,bs4:bw60,ch4:cl60,cw4:da60,dl4:dp60,ea4:ee60")
la seule les 3 premieres plages sont coloriées, les autres sont en bleu clair avec un message "erreur d'éxecution 13"
quand je clique sur debogage la fleche est sur la ligne en jaune"if cell.value = ws.range("eg5") .value then"
si quelqu'un peut me renseigner
merci
 
Dernière édition:
Re : je ne comprends pas

slt pascal
voici le code

Sub cotearrivée()

Dim c As Range, cell As Range
Dim ws As Worksheet

Set ws = Worksheets("combi")
Set c = ws.Range("ao4:as60,bd4:bh60,bs4:bw60,ch4:cl60,cw4:da60,dl4:dp60,ea4:ee60")
Application.ScreenUpdating = False

c.Select
For Each cell In Selection
If cell.Value = ws.Range("EG5").Value Then
cell.Interior.ColorIndex = 6
End If
If cell.Value = ws.Range("EG6").Value Then
cell.Interior.ColorIndex = 3
End If
If cell.Value = ws.Range("EG7").Value Then
cell.Interior.ColorIndex = 28
End If
If cell.Value = ws.Range("EG8").Value Then
cell.Interior.ColorIndex = 4
End If
If cell.Value = ws.Range("EG9").Value Then
cell.Interior.ColorIndex = 7
End If
Next
ws.Range("eh4").Select
Application.ScreenUpdating = True


End Sub

merci
 
Re : je ne comprends pas

Bonsoir à tous !
C'est effectivement à n'y rien comprendre ! Copier tel quel, le code de jad73 fonctionne à condition qu'on ait une feuille nommée "combi" dans le classeur. Même avec l'espace inutile signalée par tactic6 !​
La présence ou l'absence de Option Explicit ne change rien à l'affaire. Je joins le code, légèrement mis en forme (majuscules, indentation, suppression des lignes inutiles...) à tout hasard :
Code:
Option Explicit

Sub cotearrivée()
Dim c As Range, cell As Range
Dim ws As Worksheet
    Set ws = Worksheets("combi")
    Set c = ws.Range("AO4:AS60,BD4:BH60,BS4:BW60,CH4:CL60,CW4:DA60,DL4:DP60,EA4:EE60")
    Application.ScreenUpdating = False
    c.Select
    For Each cell In Selection
        If cell.Value = ws.Range("EG5").Value Then
            cell.Interior.ColorIndex = 6
        End If
        If cell.Value = ws.Range("EG6").Value Then
            cell.Interior.ColorIndex = 3
        End If
        If cell.Value = ws.Range("EG7").Value Then
            cell.Interior.ColorIndex = 28
        End If
        If cell.Value = ws.Range("EG8").Value Then
            cell.Interior.ColorIndex = 4
        End If
        If cell.Value = ws.Range("EG9").Value Then
            cell.Interior.ColorIndex = 7
        End If
    Next
    ws.Range("EH4").Select
    Application.ScreenUpdating = True
End Sub
C'est plus lisible, mais je doute que cela serve à quelque chose...

Si quelqu'un trouve une explication, je le remercie d'avance de ne pas oublier de la communiquer.
Bonne nuit !
ROGER2327
 
Re : je ne comprends pas

bonsoir à tous,

j'ai un bug (1004) sur les lignes c.select et ws.Range("EH4").Select (bug tout à fait normal puisque le feuillet combi n'est pas le feuillet actif
il faut donc soit l'activer avant c.select
Code:
ws.activate
c.select
soit supprimer ces lignes.

en revanche pas d'erreur 13

mystère donc

a+
 
Re : je ne comprends pas

bonjour
j'ai éssayé avec ws.activate j'ai le mème probléme.
ce que je ne comprends pas c'est que les 3 premieres plages sont coloriées
de plus c'est que toutes les plages mème celles qui sont coloriées ont le fond couleur bleu clair de la ligne 4 à 60 et je n'ai pas encore de plages remplies de données jusqu'a la ligne 60.
?
merci
 
Re : je ne comprends pas

Bonjour jad73, les participants,

Pour info, j'ai testé sur un classeur nouveau la solution de ROGER2327, elle fonctionne impeccablement.
Peut-être y-a-t'il un bug dans ton fichier, jad, celà arrive parfois sans explication connue sur Excel.
Je suis conscient de n'avoir pas résolu le problème, mais peut-être qu'en reconstruisant ton application ?

Cordialement.
 
Re : je ne comprends pas

rebjr
probleme résolu,j'ai reécrit avec un nouveau code de gael que j'ai trouvé sur le forum et ça fonctionne bien,j'ai aussi attribué des noms ames différentes plages. merci a tous


voic le code pour info
Sub arrivée()
'
' arrivée Macro
' Macro enregistrée le 20/12/2008 par jacky
'
Dim cell As Range, i As Integer
For Each cell In Range("combiSynth1,combiSynth2,etc...")
cell.Interior.ColorIndex = xlNone
For i = 1 To 5
If cell.Value = Range("EG" & i + 4).Value Then
cell.Interior.ColorIndex = Range("EG" & i + 4).Interior.ColorIndex

End If
Next i
Next cell

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour