Macro de mise a jour

bonjour,

j'ai deux fichiers. 1 avec toutes les données dans un certain ordre (extraction de logiciel), et 1 qui reprend mais seulement certaines colonnes. j'ai réussi a créer l'ouverture du fichier, copier coller en onglet 2 de mon récap. et maintenant je souhaite qu'il vérifie dans que mon récap soit soit juste sinon il le met à jour.

mais dès la premiére ligne ça coince. quelqu'un peut m'aider.

erreur 438 sur ma ligne 4.

je pense pas que pour ce blocage voir les tableau soit vraiment utile. sinon dites le moi.

voici le début du code:

Sub MAJRECAP()

'feuille a mettre à jour
FeuilR = ActiveWorkbook.Sheets("Feuil1")

'macro ouvrir ARAGO
'macro copier ARAGO
'macro coller ARAGO en feuille 2

'feuille des données exportées
FeuilD = ActiveWorkbook.Sheets("Feuil2")

'déclaration des varibles
Dim r As Long
Dim a As Long
Dim T As Long

'recherche des données "nom" de la feuil2 dans la feuille 1
LastRowA = FeuilD.Cells.Find("*", ActiveSheet.Range("L1"), , , xlByRows, xlPrevious).Rows

LastRowD = FeuilR.Cells.fond("*", ActiveSheet.Range("E1"), , , xlByRows, xlPrevious).Rows

j'ai besoin d'aide ! merci d'avance.

j'ai réussi la 1ere partie maintenant il bloque sur mon next a car soit disant pas de For.

ça fait des années que j'ai pas fait de vba et là j'aurais vraiment besoin d'une lumiere car comment lui dire que si il trouve pas la donnée r dans a il passe au a suivant, et que si r n'existe pas dans a il me met mes données à la première ligne vide du tableau.

j'ai mis l'excel mais pour soucis de confidentialité j'ai du retiré bcp de ligne et de donnée. mais le principe reste identique.

SVP aidez moi !

Sub MAJRECAP()

Workbooks("ANNUDEF.xlsm").Activate

'feuille a mettre à jour
FeuilR = Worksheets("Feuil1").Activate

'macro ouvrir ARAGO
'macro copier ARAGO
'macro coller ARAGO en feuille 2

'feuille des données exportées
FeuilD = Worksheets("Feuil2").Activate

'déclaration des varibles
Dim r As Long
Dim a As Long
Dim T As Long

' définition début de ligne pour chaque tableau
For a = 3 To LastRowD
For r = 2 To LastRowA

'recherche des données "nom" de la feuil2 dans la feuille 1
LastRowA = FeuilD.Cells.Find("*", ActiveSheet.Range("L1"), , , xlByRows, xlPrevious).Rows

LastRowD = FeuilR.Cells.Find("*", ActiveSheet.Range("E1"), , , xlByRows, xlPrevious).Rows

'si nom detail=nom decap alors
If FeuilD.Cells(r, 12) = FeuilR(a, 5) Then

    'verif PNAI, si PNAI détail=PNAI recap, sinon mettre détail en récap et fond cellule en jaune
    If FeuilD.Cells(r, 10) = FeuilR.Cells(a, 3) Then

    Else
    FeuilR.Cells(a, 3).Value = FeuilD.Cells(r, 10) And FeuilR.Cells(a, 3).Interior.Color = 6

    End If

        'verif Tel,sinon mettre détail en récap et fond cellule en jaune
        If FeuilD.Cells(r, 7) = FeuilR.Cells(a, 1) Then

        Else
        FeuilR.Cells(a, 1).Value = FeuilD.Cells(r, 7) And FeuilR.Cells(a, 1).Interior.Color = 6

        End If

    'vérif mail,sinon mettre détail en récap et fond cellule en jaune
    If FeuilD.Cells(r, 9) = FeuilR.Cells(a, 2) Then
    Else
    FeuilR.Cells(a, 2).Value = FeuilD.Cells(r, 9) And FeuilR.Cells(a, 2).Interior.Color = 6

    End If

        'vérif unité,sinon mettre détail en récap et fond cellule en jaune
        If FeuilD.Cells(r, 11) = FeuilR.Cells(a, 4) Then
        Else
        FeuilR.Cells(a, 4).Value = FeuilD.Cells(r, 11) And FeuilR.Cells(a, 4).Interior.Color = 6

        End If

    'véri grade,sinon mettre détail en récap et fond cellule en jaune
    If FeuilD.Cells(r, 14) = FeuilR.Cells(a, 6) Then
    Else
    FeuilR.Cells(a, 6).Value = FeuilD.Cells(a, 6).Interior.Color = 6

    End If

Next a

End If

If FeuilD.Cells(r, 12) Is Nothing Then

'T definit la fin du tableau récap pour pouvoir rajouter juste en dessous
'si récap va contenir plus de 1000 ligne, merci de modifier le "L1000" par "L10000" sinon ça ne fonctionnera pas!
T = Range("L1000").End(xlUp) + 1

'sinon c'est que la personne nexiste pas en récap, mettre toutes les données à la fin du tableau récap en rouge
'nom
FeuilR.Cells(T, 5).Value = FeuilD.Cells(r, 12) And Interior.Color = 3
'PNAI
FeuilR.Cells(T, 3).Value = FeuilD.Cells(r, 10) And Interior.Color = 3
'Tel
FeuilR.Cells(T, 1).Value = FeuilD.Cells(r, 7) And Interior.Color = 3
'Mail
FeuilR.Cells(T, 2).Value = FeuilD.Cells(r, 9) And Interior.Color = 3
'Unité
FeuilR.Cells(T, 4).Value = FeuilD.Cells(r, 11) And Interior.Color = 3
'Grade
FeuilR.Cells(T, 6).Value = FeuilD.Cells(r, 14) And Interior.Color = 3

End If

Next r

'supprimer feuil2

'mettre la date de MAJ a coté du bouton ARAGO
'manque la donnée date ?
'FeuilR.Cells(1, 9).Value = Date
'ne fonctionne pas. demande d'objet
'FeuilR.Cells(1, 9).Select

End Sub
10annudef.xlsm (25.46 Ko)

Bonsoir et bienvenu(e)

A tester

c'est génial !

vraiment merci merci merci !

Rechercher des sujets similaires à "macro mise jour"