MAJ mon tableau selon les nouveaux éléments de ma colonne ! (MACRO)

Bonjour à tous , j'essaie d'automatiser une tâche répétitive.

J'ai un tableau dans l'onglet 1 de noms d'animaux >

image

et j'aimerais mettre à jour mon deuxième tableau (lui présent dans l'onglet 2) >

image

avec les nouveaux noms qui n'étaient pas là avant ! (dans notre exemple il n'y a pas la girafe, le singe et le hiboux). Cependant, les noms d'animaux peuvent être en aléatoires et je ne peux pas coller le tableau 1 à la place de l'ancien 2 puis supprimer les doublons. Il faudrait une macro qui recherche chaque ligne et vérifie si elle est présente ou non dans le tableau 2.

Je rame un peu à ce sujet et vous remercie pour toute aide que vous pourrez m'apporter !

Bonjour,

Tu dis "qui n'était pas là avant !". Mais avant quoi ? Un évènement particulier ? Comment les deux tableaux sont-ils créés/initialisés ?

Tu ne peux pas (au lieu de copier/coller le tableau source à la suite), juste effectuer un ClearContent de la feuille 2 et copier le tableau de la feuille 1 ? :/

Bibu

Bonjour Bibu ,

Le tableau 2 (noir) était déjà là initialement. Ce que je n'ai pas montré c'est qu'il contient sur les colonnes suivantes des chiffres se référant à chaque animal. Chaque jours, j'ai un nouveau fichier avec de nouveaux animaux qui peuvent arriver.

Ainsi je ne peux pas me permettre de clear contents et coller le nouveau tableau car je perdrais les chiffres de chaque animal que j'avais avant.

Est-ce plus clair ?

Oui parfait, donc les nouveaux animaux "arrivants" auront des stats toutes fraiches mais on ne peut pas supprimer les stats des anciens animaux.

En supposant que tes tableaux d'animaux soient tous à la colonne A de leur feuille respective, commençant à la ligne 1 :

Sub ajoutAnimaux()

' --- --- --- By BibuNesco --- --- --- '

    Dim Ws_source As Worksheet
    Set Ws_source = ThisWorkbook.Worksheets("Feuil1")

    Dim Ws_cible As Worksheet
    Set Ws_cible = ThisWorkbook.Worksheets("Feuil2")

    derlig_source = Ws_source.Range("A" & Rows.Count).End(xlUp).Row
    derlig_cible = Ws_cible.Range("A" & Rows.Count).End(xlUp).Row

    Dim tab_source() As Variant
    tab_source = Ws_source.Range("A1", "A" & derlig_source).Value

    Dim tab_cible() As Variant
    tab_cible = Ws_cible.Range("A1", "A" & derlig_source).Value

    For i = 1 To UBound(tab_source, 1)
        compteEgalite = 0
        For j = 1 To UBound(tab_cible, 1)
            If tab_source(i, 1) = tab_cible(j, 1) Then
                compteEgalite = compteEgalite + 1        
            End If
        Next j
        If compteEgalite = 0 Then
            derlig_cible = Ws_cible.Range("A" & Rows.Count).End(xlUp).Row
            Ws_cible.Range("A" & derlig_cible + 1).Value = tab_source(i, 1)
        End If
    Next i

End Sub

Ca fonctionne de mon coté,

Cordialement,

Bibu

Rechercher des sujets similaires à "maj mon tableau nouveaux elements colonne macro"