Incompatibilité de Type : Erreur d'execution 13

Bonjour,

Je n'arrive pas à trouver le bon code en pièce jointe. Je m'en remets donc à vous.

diapositive1

Merci d'avance.

Bonjour,

Pouvez-vous essayer :

if cell.value = Marecherche.value then

Cdlt,

Bonsoir, j'ai testé sans succès.

Finalement, j'ai réussi en modifiant quelque peu le code dont voici le détail :

Private Sub OK_Click()

Dim Num_serie As Range
Dim Trouve As Range
Dim Lig As Integer
Dim Marecherche As String

Marecherche = Sheets(Ltm1.Value).Range("C13")       'Recherche de la valeur C13 de la feuille matériel(liste déroulante)
Set Num_serie = Sheets("Synthèse").Columns(5)       'scan toutes les cellules de la colonne E de la feuille synthèse
Set Trouve = Num_serie.Cells.Find(What:=Marecherche, LookAt:=xlWhole) ' recherche de la vleur exact

With Sheets(Ltm1.Value).Activate                    'Dans la feuille Matériel (liste déroulante)

    Range("I11") = Ddm1.Value                       'Applique en I11 la valeur TextBox Ddm1
    Range("C14") = Aff1.Value                       'Applique en C14 la valeur TextBox Aff1
    Range("I13") = Ddv1.Value                       'Applique en I13 la valeur TextBox Ddv1

        If Range("C10").Value = "Comparateur" Then  'Si la valeur C10 = "Comparateur" alors
            Fvi1.Value = "6 mois"                   'Applique "6 mois" à TextBox Fvi1
        Else: Range("D18") = Fvi1.Value             'Sinon Applique en D18 la valeur TextBox Fvi1
        End If

        If Ddv1.Value = "1 an" Then                 'Si la TextBox Ddv1 = 1 an alors
            Range("I18").Value = "Remplacement"     'Applique "Remplacement" en I18
        Else: Range("I18") = Fve1.Value             'Sinon Applique en I18 la valeur TextBox Fve1
        End If

    Range("D19") = Pvi1.Value                       'Applique en D19 la valeur TextBox Pvi1
End With

With Sheets("Synthèse").Activate                    'Dans la feuille "Synthèse"

  Lig = Trouve.Row                                  'Dimensionnement de Lig avec la valeur de la ligne de la cellule
            Cells(Lig, 7) = Ddm1.Value              'Applique en G Lig la valeur Ddm1
            Cells(Lig, 6) = Aff1.Value              'Applique en F Lig la valeur Aff1
            Cells(Lig, 10) = Fvi1.Value             'Applique en J Lig la valeur Fvi1
            Cells(Lig, 11) = Fve1.Value             'Applique en K Lig la valeur Fve1

End With

Sheets("Accueil").Activate                          'Retour a la feuille "Accueil"
Unload Me

End Sub

Merci pour votre aide.

Bonjour,

Je ne sais pas vraiment si vous attendez quelque chose de moi. J'ai juste réorganisé un petit peu le code et j'ai pointé les range de manière à les lier à la feuille à laquelle ils appartiennent. Ca évite les Activate et ne laisse pas de doute quand plusieurs feuilles sont impliquées dans un même code :

Private Sub OK_Click()

Dim Num_serie As Range
Dim Trouve As Range
Dim Lig As Integer
Dim Marecherche As String

With Sheets(Ltm1.Value) 'Dans la feuille Matériel (liste déroulante)
    .Range("I11") = Ddm1.Value                       'Applique en I11 la valeur TextBox Ddm1
    .Range("C14") = Aff1.Value                       'Applique en C14 la valeur TextBox Aff1
    .Range("I13") = Ddv1.Value                       'Applique en I13 la valeur TextBox Ddv1
    If .Range("C10").Value = "Comparateur" Then  'Si la valeur C10 = "Comparateur" alors
        Fvi1.Value = "6 mois"                   'Applique "6 mois" à TextBox Fvi1
    Else: .Range("D18") = Fvi1.Value             'Sinon Applique en D18 la valeur TextBox Fvi1
    End If
    If Ddv1.Value = "1 an" Then                 'Si la TextBox Ddv1 = 1 an alors
        .Range("I18").Value = "Remplacement"     'Applique "Remplacement" en I18
    Else: .Range("I18") = Fve1.Value             'Sinon Applique en I18 la valeur TextBox Fve1
    End If
    .Range("D19") = Pvi1.Value                       'Applique en D19 la valeur TextBox Pvi1
    Marecherche = .Range("C13").value       'Recherche de la valeur C13 de la feuille matériel(liste déroulante)
End With

With Sheets("Synthèse")  'Dans la feuille "Synthèse"
    Set Num_serie = .Columns(5)       'scan toutes les cellules de la colonne E de la feuille synthèse
    Set Trouve = Num_serie.Cells.Find(What:=Marecherche, LookAt:=xlWhole) ' recherche de la vleur exact
    Lig = Trouve.Row                                  'Dimensionnement de Lig avec la valeur de la ligne de la cellule
    .Cells(Lig, 7) = Ddm1.Value              'Applique en G Lig la valeur Ddm1
    .Cells(Lig, 6) = Aff1.Value              'Applique en F Lig la valeur Aff1
    .Cells(Lig, 10) = Fvi1.Value             'Applique en J Lig la valeur Fvi1
    .Cells(Lig, 11) = Fve1.Value             'Applique en K Lig la valeur Fve1
End With

Sheets("Accueil").Activate                          'Retour a la feuille "Accueil"
Unload Me

End Sub

Cdlt,

Effectivement, voilà 3 mois que je découvre les joies de VBA. Tous les conseils sont les bienvenus.

merci pour le conseil et le temps consacré.

au plaisir. Bonne soirée.

Ah, alors ce n'est que le début ! C'est un vaste océan de possibilités.

Merci à toi pour ta sympathie !

Très bonne soirée,

Rechercher des sujets similaires à "incompatibilite type erreur execution"