XL 2010 Récupérer données d'une colonne vers un autre tableau

Appo1985

XLDnaute Occasionnel
Bonjour à tous.
J'ai un fichier comportant deux tableaux. Je voudrais que la première colonne du deuxième tableau ait les mêmes données que celle de la première et que quand j'ajoute un numéro au niveau du premier tableau que le deuxième tableau soit actualisé.
J'ai besoin de votre aide.
Ci joint le fichier
 

Pièces jointes

  • deux tableau meme colonne.xlsx
    13 KB · Affichages: 5
Solution
J'aimerais aussi ne pas retrouver les numéros supprimer sur la feuille BD au niveau de la feuille note.
Alors voici :
VB:
Private Sub worksheet_Activate()
Dim i&, c As Range, suppr&, ajout&
With [t_Notes]
    If Not .ListObject.DataBodyRange Is Nothing Then
        For i = .Rows.Count To 1 Step -1
            If Application.CountIf([t_BD].Columns(1), .Cells(i, 1)) = 0 Then .Rows(i).Delete xlUp: suppr = suppr + 1
        Next i
    End If
End With
For Each c In [t_BD].Columns(1).Cells
    With [t_Notes]
        If c <> "" And Application.CountIf(.Columns(1), c) = 0 Then
            i = IIf([t_Notes].Cells(1) = "", 1, .Rows.Count + 1)
            .Cells(i, 1) = c
            ajout = ajout + 1
        End If
    End With
Next c
If suppr + ajout Then MsgBox...

chris

XLDnaute Barbatruc
Bonjour
Cela pose un problème : si, volontairement ou non, on
  • trie le 1er tableau
  • en supprime des lignes
  • y insère des lignes
le tableau 2 va avoir des problèmes

A noter qu'on ne fait jamais la moyenne en divisant par le nombre de valeur car si des notes ne sont pas encore remplies, elles comptent pour 0...
 

job75

XLDnaute Barbatruc
Bonjour Appo1985, chris,

La macro dans le code de la feuille "Notes" :
VB:
Private Sub worksheet_Activate()
Dim c As Range, i&
For Each c In [t_BD].Columns(1).Cells
    With [t_Notes]
        If c <> "" And Application.CountIf(.Columns(1), c) = 0 Then
            i = IIf([t_Notes].Cells(1) = "", 1, .Rows.Count + 1)
            .Cells(i, 1) = c
        End If
    End With
Next
End Sub
Elle se déclenche quand on active la feuille.

Puisque vous n'en parlez pas je ne me préoccupe pas du cas où l'on supprime des lignes dans la 1ère feuille.

A+
 

Pièces jointes

  • deux tableau meme colonne(1).xlsm
    18.4 KB · Affichages: 1

Appo1985

XLDnaute Occasionnel
M
Bonjour Appo1985, chris,

La macro dans le code de la feuille "Notes" :
VB:
Private Sub worksheet_Activate()
Dim c As Range, i&
For Each c In [t_BD].Columns(1).Cells
    With [t_Notes]
        If c <> "" And Application.CountIf(.Columns(1), c) = 0 Then
            i = IIf([t_Notes].Cells(1) = "", 1, .Rows.Count + 1)
            .Cells(i, 1) = c
        End If
    End With
Next
End Sub
Elle se déclenche quand on active la feuille.

Puisque vous n'en parlez pas je ne me préoccupe pas du cas où l'on supprime des lignes dans la 1èreri
Ca
Bonjour Appo1985, chris,

La macro dans le code de la feuille "Notes" :
VB:
Private Sub worksheet_Activate()
Dim c As Range, i&
For Each c In [t_BD].Columns(1).Cells
    With [t_Notes]
        If c <> "" And Application.CountIf(.Columns(1), c) = 0 Then
            i = IIf([t_Notes].Cells(1) = "", 1, .Rows.Count + 1)
            .Cells(i, 1) = c
        End If
    End With
Next
End Sub
Elle se déclenche quand on active la feuille.

Puisque vous n'en parlez pas je ne me préoccupe pas du cas où l'on supprime des lignes dans la 1ère feuille.

A+
Ça donne ce que je voulais. Effectivement les élèves absents doivent être supprimés du premier tableau
 

Appo1985

XLDnaute Occasionnel
Bonjour Appo1985, chris,

La macro dans le code de la feuille "Notes" :
VB:
Private Sub worksheet_Activate()
Dim c As Range, i&
For Each c In [t_BD].Columns(1).Cells
    With [t_Notes]
        If c <> "" And Application.CountIf(.Columns(1), c) = 0 Then
            i = IIf([t_Notes].Cells(1) = "", 1, .Rows.Count + 1)
            .Cells(i, 1) = c
        End If
    End With
Next
End Sub
Elle se déclenche quand on active la feuille.

Puisque vous n'en parlez pas je ne me préoccupe pas du cas où l'on supprime des lignes dans la 1ère feuille.

A+
J'aimerais aussi ne pas retrouver les numéros supprimer sur la feuille BD au niveau de la feuille note.
 

job75

XLDnaute Barbatruc
J'aimerais aussi ne pas retrouver les numéros supprimer sur la feuille BD au niveau de la feuille note.
Alors voici :
VB:
Private Sub worksheet_Activate()
Dim i&, c As Range, suppr&, ajout&
With [t_Notes]
    If Not .ListObject.DataBodyRange Is Nothing Then
        For i = .Rows.Count To 1 Step -1
            If Application.CountIf([t_BD].Columns(1), .Cells(i, 1)) = 0 Then .Rows(i).Delete xlUp: suppr = suppr + 1
        Next i
    End If
End With
For Each c In [t_BD].Columns(1).Cells
    With [t_Notes]
        If c <> "" And Application.CountIf(.Columns(1), c) = 0 Then
            i = IIf([t_Notes].Cells(1) = "", 1, .Rows.Count + 1)
            .Cells(i, 1) = c
            ajout = ajout + 1
        End If
    End With
Next c
If suppr + ajout Then MsgBox suppr & " ligne(s) supprimée(s) et " & ajout & " ligne(s) ajoutée(s)"
End Sub
J'ai aussi modifié la formule de la moyenne.
 

Pièces jointes

  • deux tableau meme colonne(2).xlsm
    19.9 KB · Affichages: 5

Appo1985

XLDnaute Occasionnel
Alors voici :
VB:
Private Sub worksheet_Activate()
Dim i&, c As Range, suppr&, ajout&
With [t_Notes]
    If Not .ListObject.DataBodyRange Is Nothing Then
        For i = .Rows.Count To 1 Step -1
            If Application.CountIf([t_BD].Columns(1), .Cells(i, 1)) = 0 Then .Rows(i).Delete xlUp: suppr = suppr + 1
        Next i
    End If
End With
For Each c In [t_BD].Columns(1).Cells
    With [t_Notes]
        If c <> "" And Application.CountIf(.Columns(1), c) = 0 Then
            i = IIf([t_Notes].Cells(1) = "", 1, .Rows.Count + 1)
            .Cells(i, 1) = c
            ajout = ajout + 1
        End If
    End With
Next c
If suppr + ajout Then MsgBox suppr & " ligne(s) supprimée(s) et " & ajout & " ligne(s) ajoutée(s)"
End Sub
J'ai aussi modifié la formule de la moyenne.
C'est vraiment intéressant. Je suis très satisfait. Grandement merci
 

vgendron

XLDnaute Barbatruc
sans déconner.. faut quand meme faire un effort de lecture et de compréhension
je t'ai dit de te mettre sur le premier post pour le modifier.. c'est quand meme pas compliqué à comprendre !
la mauvaise fois.. ca me gonfle !
dit plutot que ta volonté était de ne rien faire!
 

Appo1985

XLDnaute Occasionnel
sans déconner.. faut quand meme faire un effort de lecture et de compréhension
je t'ai dit de te mettre sur le premier post pour le modifier.. c'est quand meme pas compliqué à comprendre !
la mauvaise fois.. ca me gonfle !
dit plutot que ta volonté était de ne rien faire!
Bonjour. Vraiment ce n'est pas du tout ce que vous pensez. Pour vous expliquer j'utilise un smartphone pas du tout pratique actuellement, n'arrivant pas à me contacter avec mon ordi. J'arrive à peine de publier et répondre aux différentes réaction. Personnellement je ne vois pas l'intérêt des deux postes .
Ce n'est pas la première fois que vous apportez une réponse à mes questions. Pourquoi donc vouloir vous vexer ?
Je suis dans une zone ou la connexion Internet est médiocre. Voilà pourquoi j'ai fait une deuxième publication. Je ne savais pas que la première est déjà partie.
Vraiment je vous présente encore mes excuses.
 

Discussions similaires

Statistiques des forums

Discussions
315 080
Messages
2 116 004
Membres
112 636
dernier inscrit
fred 1969