Renvoi valeur tableau A dans tableau B si valeur cellule = 1

Bonjour,

Je vous sollicite car je bloque sur un problème

j'essai d'être clair ;-) ci dessous

je voudrais copier la valeur de la colonne A du tableau "MyGrid" si la valeur de la colonne K est = 1 et et l'insérer dans le tableau "Tableau2" en colonne A

et cela sur tous les cas ou on trouve 1 dans le tableau "MyGrid" en colonne K

et venir insérer ces valeur dans le tableau B dans le meme ordre en colonne A

les 2 tableaux se trouve sur la meme feuille Excel " Feuil1"

Merci de votre aider et si possible des explications des codes pour comprendre les principes

Bonjour,

Un fichier exemple serait le bienvenu pour une aide adaptée du forum avec le résultat attendu.

Bonjour Salpetier,

Voici un exemple simple avec une macro.

Bonjour,

Je ne comprends pas elle bloque a ce Niveau la

pouvez vous m'aider, j'ai mis mon fichier ci joint

merci

image
13ddc24000xxx.zip (477.66 Ko)

Bonjour Salpetrière,

Il faut probablement modifier le nom "Colonne 1" par celui qui correspond dans ton tableau myGrid (1re colonne).

Merci pout tout problème résolu

Je voudrais vous demander pourriez vous me décrire a coté de chaque ligne ce que cela représente et action que cela produit que je comprenne svp

Je ne pourrai pas dans l'immédiat (voyage), mais dans quelques jours, oui... N'hésite pas à me relancer si jamais j'oublie.

Bonjour Salpetier,

Voici le même fichier avec les commentaire dans la macro.

Sub copierLignesK1()
'
' copierLignesK1 Macro
'

'
    Dim myGrid As Excel.ListObject, myTable As Excel.ListObject
    Set myGrid = Feuil1.ListObjects("myGrid") ' initialistion de la variable myGrid indiquant qu’il s’agit de la table « myGrid »
    Set myTable = Feuil1.ListObjects("TableauB") ' initialistion de la variable myGrid indiquant qu’il s’agit de la table « TableauB »
    On Error Resume Next ' si une erreur survient, l’exécution continue à l’instruction suivante
    myTable.DataBodyRange.Rows.Delete ' Suppression de toutes les lignes de contenu de la table «  TableauB »
    On Error GoTo 0 'remise à zéro de la gestion des erreurs : si une erreur survient, le code s’arrête et affiche un message d’erreur
    Dim myColumn As Excel.ListColumn
    Set myColumn = myGrid.ListColumns("Colonne11") ' Initialisationde la variable myColumn indiquant qu’il s’agit de la colonne 11 de la table « myGrid » (colonne K)
    Dim myCell As Excel.Range
    For Each myCell In myColumn.DataBodyRange.Cells ' Pour chaque cellule de la colonne11 (colonne K)
        If myCell = 1 Then ' Si la cellule vaut 1 alors
            myTable.ListRows.Add ' on ajoute une nouvelle ligne au tableauB
            ' Dans la première colonne de la nouvelle ligne de TableauB, on copie le contenu de la colonne 1 de myGrid :
            myTable.ListColumns(1).DataBodyRange.Cells(myTable.ListRows.Count) = myGrid.ListColumns("Colonne1").DataBodyRange.Rows(myCell.Row - 1) ' -1 ici parce que l’entête de la table myGrid est à la ligne 1
        End If
    Next myCell
End Sub
Rechercher des sujets similaires à "renvoi valeur tableau"