Erreur d'exécution '13' , pb boucle for pourtant fonctionne pr Range("C2")

Sub test2()

Workbooks("test.xlsx").Activate

For i = 2 To 23

If Range("C" & i) = "A" Then

Range("D" & i).Copy

Workbooks("Ecoute-client_global_final.xlsm").Activate

Sheets("Forces-Faiblesses").Activate

Range("L" & i).Select

ActiveSheet.Paste

Range("D" & i) = CStr(Range("D" & i)) & vbCrLf & CStr(Range("L" & i))

ElseIf Range("C" & i)= "B" Then

Range("D" & i).Copy

Workbooks("Ecoute-client_global_final.xlsm").Activate

Sheets("Forces-Faiblesses").Activate

Range("L" & i).Select

ActiveSheet.Paste

Range("E" & i) = CStr(Range("E" & i)) & vbCrLf & CStr(Range("L" & i))

ElseIf Range("C" & i) = "C" Or Range("C" & i) = "D" Then

Range("D" & i).Copy

Workbooks("Ecoute-client_global_final.xlsm").Activate

Sheets("Forces-Faiblesses").Activate

Range("L" & i).Select

ActiveSheet.Paste

Range("F" & i) = CStr(Range("F" & i)) & vbCrLf & CStr(Range("L" & i))

End If

Next

End Sub

Bonjour, l'objectif de ce code est de répertorier tous les commentaires d'un fichier (colonne D) en fonction de leur note (colonne C). Les notes sont A, B, C ou D.

Le code doit permettre de réécrire dans un autre excel les commentaires avec la note A dans une colonne, ceux avec B dans une autre, et ceux avec C ou D dans une autre encore.

Sans la boucle For le code fonctionne, avec la boucle For, j'ai erreur d'exécution '13' et je ne sais pas comment le résoudre.. Pouvez-vous m'aider?

Cordialement,

Maxence

15test.xlsx (13.01 Ko)
Les deux fichiers excel en question.

Bonjour,

Teste ceci

Bonjour,

Vous rencontrez une erreur de type 13 à quelle ligne ?

Voici un essai d'adaptation du code :

Sub test2()

set wss = Workbooks("test.xlsx").sheets(1)
set wsd = thisworkbook.Sheets("Forces-Faiblesses")

with wsd
    wss.range("D2:D23").copy .range("L2:L23")
    For i = 2 To 23
        If wss.Range("C" & i) = "A" Then
            .Range("D" & i) = CStr(.Range("D" & i)) & vbCrLf & CStr(.Range("L" & i))
        ElseIf wss.Range("C" & i)= "B" Then
            .Range("E" & i) = CStr(.Range("E" & i)) & vbCrLf & CStr(.Range("L" & i))
        ElseIf wss.Range("C" & i) = "C" Or wss.Range("C" & i) = "D" Then
            .Range("F" & i) = CStr(.Range("F" & i)) & vbCrLf & CStr(.Range("L" & i))
        End If
    Next i
end with

End Sub

Cdlt,

Le problème est réglé ! L'erreur était au niveau du If Range("C"&i) =

Merci beaucoup !

Merci à vous deux, les deux solutions sont bonnes !

Rechercher des sujets similaires à "erreur execution boucle pourtant fonctionne range"