Problème de syntaxe

  • Initiateur de la discussion Initiateur de la discussion zazou5908
  • 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 !

Z

zazou5908

Guest
Bonjour le forum,

Y aurait-il quelqu'un pour m'expliquer pourquoi le 1er code ne fonctionne pas et que el second oui.

Pourquoi faut-il toujours répéter

If Range("Y" & i).Value = 1 Then Range("A" & i & ":W" & i)

devant mes propriétés pour que la macro exécute ce que je lui demande ?

Si je ne met pas cela, toutes les lignes de la colonne A pour les lignes comprises dans mon for i to .... sont mises à jour !

Merci de faire avancer ma connaissance.


====================================
Sub Macro1()
'
' Macro1 Macro
' Macro inspirée XLD + perso
'

'
Dim i As Integer

For i = 10 To 17 Step 1

If Range("X" & i).Value = 2 Then Range("A" & i & ":W" & i).Font.Bold = True

If Range("Y" & i).Value = 1 Then Range("A" & i & ":W" & i).Font.Size = 14
.Interior.ColorIndex = 33
.Interior.Pattern = xlSolid
.Interior.PatternColorIndex = xlAutomatic

Next i

End Sub

====================================

Sub Macro1()
'
' Macro1 Macro
' Macro inspirée XLD + perso
'

'
Dim i As Integer

For i = 10 To 17 Step 1

If Range("X" & i).Value = 2 Then Range("A" & i & ":W" & i).Font.Bold = True

If Range("Y" & i).Value = 1 Then Range("A" & i & ":W" & i).Font.Size = 14
If Range("Y" & i).Value = 1 Then Range("A" & i).Interior.ColorIndex = 33
If Range("Y" & i).Value = 1 Then Range("A" & i).Interior.Pattern = xlSolid
If Range("Y" & i).Value = 1 Then Range("A" & i).Interior.PatternColorIndex = xlAutomatic

Next i

End Sub

====================================
 
Re : Problème de syntaxe

Salut Zazou5908,

Dans ton premier code tu veux appliquer une propriété à un objet qui n'est pas déterminé.

Il faut que tu mettes ça :
Code:
If Range("Y" & i).Value = 1 Then 
  [COLOR=blue]With Range("A" & i & ":W" & i) [/COLOR][COLOR=green]' Avec mon objet range()[/COLOR]
    .Font.Size = 14
    .Interior.ColorIndex = 33
    .Interior.Pattern = xlSolid
    .Interior.PatternColorIndex = xlAutomatic
[COLOR=blue]  End With[/COLOR]

Voilà 😉
 
Re : Problème de syntaxe

Bonjour,

Il faut encadrer les modifications avec If et ... End If.

Essaye comme ceci :

Sub Macro2()
For i = 10 To 17 Step 1
If Range("X" & i).Value = 2 Then Range("A" & i & ":W" & i).Font.Bold = True
With Range("Y" & i)
If .Value = 1 Then
Range("A" & i & ":W" & i).Font.Size = 14
Range("A" & i).Interior.ColorIndex = 33
Range("A" & i).Interior.Pattern = xlSolid
Range("A" & i).PatternColorIndex = xlAutomatic
End If
End With
Next
End Sub
 
Re : Problème de syntaxe

Bonsoir Bruno, Catrice et le Forum,

Autre solution:

Code:
Sub Macro1()
'
' Macro1 Macro
' Macro inspirée XLD + perso
'
Dim I As Integer
    For I = 10 To 17 Step 1
        If Range("X" & I).Value = 2 Then Range("A" & I & ":W" & I).Font.Bold = True
            If Range("Y" & I).Value = 1 Then
                Range("A" & I).Select
                With Selection
                   .Font.Size = 14
                   .Interior.ColorIndex = 33
                   .Interior.Pattern = xlSolid
                   .Interior.PatternColorIndex = xlAutomatic
                End With
            End if
    Next I
End Sub
Bon test.
 
Dernière édition:
Cher Bruno, Catrice, Jyll et le forum

Merci pour vos réponses éclairés.

Comme lors d'une précédente question, on m'a fait la remarque que les select .... prenait plus de temps à l'excécution, je vais continuer avec la solution de Bruno.

Que les autres se consolle cette fois-ci car ils m'ont permis de faire avancer ma culture VBA 😀

A bientôt et encore merci
 
Grrrrrr sans faute de Français c'est pas mal non plus !

Cher Bruno, Catrice, Jyll et le forum

Merci pour vos réponses éclairées.

Comme lors d'une précédente question, on m'a fait la remarque que les "select" .... prenaient plus de temps à l'excécution, je vais continuer avec la solution de Bruno.

Que les autres se consollent cette fois-ci car ils m'ont permis de faire avancer ma culture VBA

A bientôt et encore merci
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
905
Réponses
15
Affichages
774
Réponses
2
Affichages
525
Réponses
8
Affichages
388
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour