Erreur 1004 Erreur définie par l'application ou par l'objet

Bonjour!

Je voulais m'entrainer sur VBA en faisant une fonction simple et j'ai quand même une erreur.

Je veux mettre en rouge les cellules à gauche de toutes les cases où est marqué d.

Sub rouge()
Worksheets("Marge").Range("A1:BZ60").Activate
Dim k As Integer
Dim i As Integer
For i = 1 To 60
For k = 1 To 60
If Application.Workbooks("13-Abribois FR-GG100").Worksheets("Marge").Range("i, k").Value = "d" Then
Range("i - 1, k").Select
Selection.Font.Color = "red"
End If
Next
Next
End Sub

Et c'est la ligne:

"If Application.Workbooks("13-Abribois FR-GG100").Worksheets("Marge").Range("i, k").Value = "d" Then"

qui pose problème.

Vous pourriez m'aider?

(Et question subsidiaire: est-il possible de faire la même chose avec une mise en forme conditionnelle?)

Merci!

Salut Marcosocho

Ton code appelle plusieurs commentaires. Je n'en ferai qu'un : tu ne peux pas ecrire à gauche de la colonne A

Dans le fichier Excel 2003 joint il y une petite macro nommée rouge2 qui fait ce que tu veux.

J'espère qu'elle fonctionne avec ta version d'Excel. Tu devra peut être faire des adaptations.

Cdt

W.

17couleur.zip (8.32 Ko)

Bonsoir,

Sans grande conviction

Option Explicit
Public Sub rouge()
Dim Ws As Worksheet
Dim i As Byte, j As Byte
    Application.ScreenUpdating = False
    Set Ws = Worksheets("Marge")
    With Ws
        For i = 1 To 60
            For j = 2 To 60
                If .Cells(i, j) = "d" Then
                    .Cells(i, j - 1).Font.Color = vbRed
                End If
            Next
        Next
    End With
End Sub

Bonjour

Ma participation

Merci beaucoup!

Les 2 marchent.

J'ai juste une question pour Jean-Eric ou pour Banzai64: pourquoi faut-il mettre cells et pas range?

Et pour la mise en forme ça marche mais je vois pas pourquoi on écrit =B1="d". Le B1 veut dire qu'on prend la valeur à droite de la cellule c'est ça? Mais comment on fait si on veut que ce soit les cellules à droite de "d" qui soient mises en rouge? Il n'y a pas de lettre avant A.

Bonjour

On utilise Cells quand la colonne est une variable (on pourrait passer par un Range mais serait un peu plus complexe)

=B1="d"

c'est la condition qui doit être vérifiée : Pour que l'écriture de la cellule passe au rouge il faut que sa cellule à droite soit un "d"

exemple :

A1 passera en rouge si B1 est un "d"

A2 passera en rouge si B2 est un "d"

B1 passera en rouge si C1 est un "d"

etc ...

etc ...

Banzai64 a écrit :

comment on fait si on veut que ce soit les cellules à droite de "d" qui soient mises en rouge?

La formule devient =A1="d" et la zone de la MEFC sera B1:BH60

D'accord, c'est bien clair.

Merci beaucoup à tous pour votre aide!

Rechercher des sujets similaires à "erreur 1004 definie application objet"