Question concernant un SI Macro Excel

Résolu
Bonjour,

quelqu'un peut me dire pourquoi j'obtiens une erreur 13 dans ce code ?

 If ShtR.Range("A2:A1000") = ShtN.Range("h20").Value Then
ShtR.Range("C").Value = ShtN.Range("F3")


Je veux que si le range A2:A1000 (fichier 1) contient la valeur de la cellule h20 (fichier 2), la cellule C de la même ligne que la valeur trouvée en h20 devienne la valeur F3 de mon fichier 2.

Merci de votre aide ! :)

Maritn

3 réponses

  1. j'ai trouvé, merci ! :)

    voici mon code :

    Private Sub CommandButton1_Click()
    Dim sFicRegistre    As String
    Dim sPathRegistre   As String
    Dim WbkR            As Object
    Dim shtR            As Worksheet
    Dim ShtN            As Worksheet
    Dim Desc            As String
    Dim Nom_Fichier, Chemin, modif
    Dim li              As Long
      
    
      ' Définir les variables
      sFicRegistre = "Registre.xlsm"
      sPathRegistre = "P:\PO\"
      Set ShtN = ThisWorkbook.Sheets("PO")
      ' Ouvrir le classeur en OLE
      Set WbkR = GetObject(sPathRegistre & "\" & sFicRegistre)
      Set shtR = WbkR.Sheets("Registre")
      
      Const plage = "A2:A1000"
      Desc = ShtN.Range("B19").End(xlUp)
        
      With shtR
      Set modif = .Range("A2:A1000").Find(ShtN.Range("h20"), , , xlWhole)
      If Not modif Is Nothing Then
      li = modif.Row
      .Range("D" & li).Value = .Range("G19")
      WbkR.Windows(1).Visible = True
      WbkR.Close savechanges:=True
      Application.ScreenUpdating = True
      
    End If
    End With
    End Sub
    1. il n'y a pas d'erreur dans le code, mais le changement ne s'effectue pas... voici mon code au complet

      Dim sFicRegistre    As String
      Dim sPathRegistre   As String
      Dim WbkR            As Object
      Dim shtR            As Worksheet
      Dim ShtN            As Worksheet
      Dim Desc            As String
      Dim Nom_Fichier, Chemin, modif
      Dim li              As Long
        
      
        sFicRegistre = "Registre.xlsm"
        sPathRegistre = "C:\PO\"
        Set ShtN = ThisWorkbook.Sheets("PO")
      
        Set WbkR = GetObject(sPathRegistre & "\" & sFicRegistre)
        Set shtR = WbkR.Sheets("Registre")
        
        Const plage = "A2:A1000"
        Desc = ShtN.Range("B19").End(xlUp)
          
        With shtR
        Set modif = .Range("A2:A1000").Find(.Range("h20"), , , xlWhole)
        If Not modif Is Nothing Then
        li = modif.Row
        .Range("D" & li).Value = .Range("G19")
        
      
      End If
      End With
      End Sub
      1. bonjour
        essaies ceci

        Const plage = "A2:A24"
        Dim shtR
        Dim c
        Dim li As Long
        Set shtR = Sheets(1)
        With shtR
          Set c = .Range(plage).Find(.Range("h20"), , , xlWhole)
          If Not c Is Nothing Then
            li = c.Row
            .Range("C" & li).Value = .Range("F3")
          End If
        End With

        bonne suite