[Macro] Une petite erreur 438

Bonjour à tous,

Premièrement voici ce que j'essaye de faire :

J'ai ma colonne 1 "mère" sur mon document. Elle est prête. Elle fait 30 lignes. Guère plus je pense.

a

b

c

d

e

f

Et je saisie depuis un site un tableau qui a cette tête dans une "zone de saisie" sur ma sheet:

a 1

c 2

d 3

e 4

g 5

f 6

Je voudrais qu'il me mette dans la colonne 2 les références dans le bon sens

Ca donnerait

a1

bND

c2

d3

e4

f6

g5

Il a rajouté la ligne g parce qu'il l'avait pas et il a mis ND quand il y avait pas de "match". ND pour 'Non documenté'

Je vide la zone de saisie. Je refais un copie coller depuis le site en question du genre :

a2

b2

c2

Et il me ressort dans la colonne 3 :

a1 2

bND 2

c2 2

d3 ND

e4 ND

f6 ND

g5 ND

Et ainsi de suite

La colonne mère fait 30 ligne.

Mettons que la zone de saisie (à deux colonnes donc) commence ligne 40. C'est la marge que je pense me prévoir. Mais je pourrais toujours augmenter les doses dans le futur si je sens que c'est pas suffisant.

La macro R que j'ai imaginé est la suivante :

Sub R()

Dim i As Long
Dim j As Long
Dim debutDeLaLigneDeSaisie As Long
Dim nombreDeColonne As Long
Dim insere As Boolean
Dim nombreEffectifDeLignesDansLaZoneMere As Long
Dim lastColumn As Long
With ActiveWorkbook.Sheets("Sheet1")
        debutDeLaLigneDeSaisie = 40
        For i = debutDeLaLigneDeSaisie To Rows.Count
          nombreEffectifDeLignesDansLaZoneMere = 0
          insere = False
          'On itère sur toutes les lignes
          For j = 1 To debutDeLaLigneDeSaisie - 1
            If Cells(i, 1).Value = Cells(j, 1).Value Then
              Cells(j, lastColumn + 1).Value = Cells(i, 2).Value
              insere = True
            End If
            If Cells(j, 1).Value <> "" Then
              nombreEffectifDeLignesDansLaZoneMere = nombreEffectifDeLignesDansLaZoneMere + 1
            End If
          Next j

          ' On ajoute les données qui sont pas dans la zone mère
          If Not insere Then
            Cells(nombreEffectifDeLignesDansLaZoneMere, 1).Values = Cells(i, 1).Value
            Cells(nombreEffectifDeLignesDansLaZoneMere, lastColumn + 1).Values = Cells(i, 2).Value
            nombreEffectifDeLignesDansLaZoneMere = nombreEffectifDeLignesDansLaZoneMere + 1
          End If

          ' On remplit de ND si nécessaire
          For j = 1 To debutDeLaLigneDeSaisie - 1
            If Cells(j, 1).Value <> "" And Cells(j, lastColumn + 1).Value = "" Then
              Cells(j, lastColumn + 1).Value = "ND"
            End If
          Next j

        Next i

End With
End Sub

Dans l'esprit je pense que c'est ça.

Le problème que j'ai c'est qu'il me renvoie une erreur 438

Auriez vous une petite idée ? Suis-je sur la bonne voix ?

Bonsoir phosphorylase

je pense qu'il faut enlever les S à values (value)

Rechercher des sujets similaires à "macro petite erreur 438"