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. 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
    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. 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