Propriété ou méthode non gérée par cet objet

Bonjour,

Je suis en train de faire un programme qui est le suivant :

Dim derligne As Long

Dim FL1 As Worksheet, FL2 As Worksheet, Cell As Range, Plage As Range

Dim Var1

derligne = Sheets("Santé et Sécurité").Range("A1048576").End(xlUp).Row

Set FL1 = Worksheets("Santé et Sécurité")

Set FL2 = Worksheets("Santé et Sécurité BD")

With FL1

Set Plage = .Range("C2:AF" & derligne)

For Each Cell In Plage

'Valeur de la cellule lue

Var1 = Cell.Value

If Var1 = "Validé" Then

With FL2

Sheets("Santé et Sécurité BD").Cell = Var1

End With

End If

Next

End With

Et malgré plusieurs essais on me met "erreur 438" sur la ligne : Sheets("Santé et Sécurité BD").Cell = Var1

J'ai essayé plusieurs variantes comme par exemple : Sheets("Santé et Sécurité BD").Cell.value = Sheets("Santé et Sécurité ").Cell.value Mais rien ne marche.

J'ai vu sur plusieurs forum que cette erreur pouvait être due a un problème d'activation des feuilles c'est pour ça que j'ai crée des with imbriqués

Est-ce qu'il y aurai une âme charitable pour m'aider ?

Merci d'avance

J'ai oublié de préciser que mon programme est dans :

Private Sub Worksheet_Activate()

Bonjour,

Sheets("Santé et Sécurité BD").Cell = Var1

Cell n'est pas une propriété de feuille mais dans ton code, une variable objet de classe Range représentant une cellule.

Cells est une propriété de feuille.

L'instruction doit être de ce type :

With FL2
    .Cells(ligne,colonne).Value = Var1
End With

Merci pour ta réponse thev,

Effectivement ça ne me met plus d'erreur mais le code ne marche toujours pas ... Le programme est censé détecter si dans ma première feuille, les cellules qui ont la valeur : " Validé" et les recopier automatiquement dans l'autre feuille sur les mêmes cases. Aurai-tu une idée ?

Bonsoir,

Essayer ce code

    Dim FL1 As Worksheet, FL2 As Worksheet
    Dim first_cell As Range, last_cell As Range, Cell As Range, Plage As Range

    Set FL1 = Worksheets("Santé et Sécurité")
    Set FL2 = Worksheets("Santé et Sécurité BD")
    With FL1
        Set first_cell = .Range("C2")
        Set last_cell = .Cells(Rows.Count, "AF").End(xlUp)
        Set Plage = Range(first_cell, last_cell)
        For Each Cell In Plage
            If Cell.Value = "Validé" Then
                 FL2.Range(Cell.Address) = Cell.Value
            End If
        Next Cell
    End With

Bonjour,

Ton code me met : Erreur 1004, la méthode Range de l'objet worksheet a échoué ... à la ligne "Set Plage"

Une idée ?

Ton code me met : Erreur 1004, la méthode Range de l'objet worksheet a échoué ... à la ligne "Set Plage"

Essayer cette modif

Set Plage = .Range(first_cell, last_cell)

Ca ne me met plus d'erreurs mais ça ne fais rien sur la page, aucune modification ... Et je voudrai que a chaque fois que nous allons sur cette feuille le programme rajoute les cellules "validé" sans supprimer les anciennes

Ca ne me met plus d'erreurs mais ça ne fais rien sur la page, aucune modification

Dernière suggestion sans exemple de votre problème avec un fichier joint

    Dim FL1 As Worksheet, FL2 As Worksheet
    Dim first_cell As Range, last_cell As Range, Cell As Range, Plage As Range
    Dim last_line As Long

    Set FL1 = Worksheets("Santé et Sécurité")
    Set FL2 = Worksheets("Santé et Sécurité BD")
    With FL1
        Set first_cell = .Range("C2")
        last_line = .Cells.Find("*", SearchDirection:=xlPrevious).Row
        Set last_cell = .Cells(last_line, "AF")
        Set Plage = .Range(first_cell, last_cell)
        For Each Cell In Plage
            If Cell.Value = "Validé" Then
                 FL2.Range(Cell.Address) = Cell.Value
            End If
        Next Cell
    End With

Merci beaucoup ca marche parfaitement !

Merci de ton investissement thev !

Rechercher des sujets similaires à "propriete methode geree cet objet"