Copier coller les lignes d'un tableau

Bonjour,

Je bloque sur un problème sans doute tout bête !

J'ai un tableau de six colonnes et d'une longueur variable (+/- 15 lignes)

Dans ce tableau chaque cellule peut avoir la valeur 0, 1, 3 ou 5.

Je voudrai faire en sorte que si une ligne de mon tableau comporte une fois, ou plusieurs fois le nombre 5, cette ligne soit intégrallement recopiée dans un nouveau tableau.

J'ai regardé à droite à gauche sur les forums, et je pense qu'il faudrait aue je face une boucle "for each"

mais je ne veux pas avoir a selectionner manuellement le tableau.

Si vous pouvez m'orienter ca serait super top ;D

Bonjour Guilhem le forum

bah je vais te dire que ce n'est pas un problème.

Mais comme tu n'as pas mis de fichier exemple ??

si tu le fais n'oublie pas de mettre les explications dans le fichier

a+

Papou

Bonjour Paritec

Mea Culpa

Sans mon tableau ça risqué d'être compliqué...

Le voici

Bonjour à tous

Un essai à tester. Te convient-il ?

Bye !

9classeur1-v1.xlsm (15.81 Ko)

Bonjour, ReSalut Paritec !

Sub Test()
    Dim aa, bb(), i%, k%, n%
    aa = ActiveSheet.Range("A1").CurrentRegion
    For i = 2 To UBound(aa, 1)
        For k = 1 To 6
            If aa(i, k) = 5 Then
                ReDim Preserve bb(n)
                bb(n) = WorksheetFunction.Index(aa, i, 0)
                n = n + 1: Exit For
            End If
        Next k
    Next i
    With ActiveSheet
        .Range("A13").CurrentRegion.Offset(1).ClearContents
        .Range("A14").Resize(n, UBound(aa, 2)).Value = WorksheetFunction.Transpose( _
         WorksheetFunction.Transpose(bb))
    End With
End Sub

Cordialement.

Re Guilhem MFerrand Gmb le forum

bah il a du succès allez une 3 eme version

a+

Papou

5guilhem-v1.xlsm (18.51 Ko)

Merci Pour vos nombreuses réponses !

Je ne pensais pas avoir tant de solution et aussi vite

Vous êtes des pro !

La version 2 me semble parfait.

A Bientôt

Bonjour ,

Salut Mferrand, Patitec, gmb!

Mr Guilhem, si votre problème est résolu. Veuillez cliquer sur √ s'il vous plaît. Merci!

Bonne journée !

Édit : plus de précision sur "qui doit porter la mention résolue" .

Boujour Stoure le forum

je ne sais pas ce que tu veux mon cher, mais nous sommes tous les trois des répondeurs !!!!

Et seul, le créateur du post peut le faire !!!!!

Merci quand même pour la leçon ??? !!!!

Bonne journée

Papou

Salut Paritec,

Ce n'est pas adressé à vous!

Je vous ai salué, c'est à Guilhem de le faire.

Re stoure le forum,

oui mais c'est équivoque vu la composition du message,

Guilhem merci de bien vouloir cliquer sur le V vert

a+

Papou

Bonjour désolé pour le V vert je n'y avais pas pensé

J'ai encore une question

Que dois je changer dans le code si je ne veux plus une valeur mais un mot

aa() doit être déclaré comme un mot

aa() dim string ?

Dans quel code veux-tu changer quoi ?

En retournant voir le mien, je n'ai pas de aa()...

J'ai aa => variable de type Variant (non typée) [à laquelle on affectera un tableau : la plage à parcourir (ses valeurs donc)].

et bb() => variable Tableau dynamique (qu'on va incrémenter au fur et à mesure pour lui affecter les lignes à prélever), également non typé, car tableau à une dimension qui accueille des lignes entières de la plage source, ses éléments seront donc eux-mêmes des tableaux... Il s'agit du tableau de résultat qui sera affecté à la fin à la plage cible.

5 était une valeur numérique, un mot sera une valeur texte (String), les 2 sont des valeurs, de types différents, mais il y en a d'autres, déjà les valeurs numériques se déclinent en plusieurs types, les dates constituent un type particulier, les valeurs logiques (booléennes) également, et il y a des valeurs d'erreurs...

Dans mon code, 5 n'était pas affecté à une variable, si tu l'affectes à une variable, dans le but de faire varier la valeur recherchée, tu as sans doute intérêt à ne pas typer (type Variant) pour qu'elle accepte tout type de valeur... et le cas échéant la placer en argument de la Macro, qui devra alors être lancée par une autre macro lui passant son argument (le mot à chercher) après par exemple te l'avoir demandé par une InputBox (ou l'avoir prélevé dans une cellule où tu l'as consigné).

Cordialement.

Rechercher des sujets similaires à "copier coller lignes tableau"