Extraire d'un tableau excel certaines lignes

emmenez-moi Messages postés 2 Statut Membre -  
melanie1324 Messages postés 1561 Statut Membre -
Bonjour,

Je m'inspire souvent de vos remarques, mais là je bloque.
Je souhaite extraire d'un tableau certaines lignes pour remplir un autre tableau, mais sou s certaines conditions. La difficulté est de copier ces lignes sans les lignes vides.
- dans le tableau 1 , la colonne C1 se remplie quand je remplie D1, ou D2 jusquà D7. Le même principe jusqu'à C80.
- dans le tableau 2, je veux faire apparaître que les lignes ou la colonne C est remplie, et pas les autres. Le but est de recopier toutes les données de la ligne C, car en A j'ai le nom, etc...
La formule que j'ai mis est la suivante, elle marche mais elle ne concerne qu'une ligne : SI(NB.SI(C3;"");"";A3) : ce que je veux c'est que si C3 est vide, il vérifie C4, et si C4 est rempli il copie A4, sinon il vérifie C5, et même raisonnement.
Merci beaucoup de votre aide

A voir également:

3 réponses

melanie1324 Messages postés 1561 Statut Membre 156
 
par formules, je ne vois pas. Par contre, par macro, oui!
0
emmenez-moi Messages postés 2 Statut Membre
 
merci c'est bien ce que je pensais, et le maîtrisant pas cette technique, je suis en panne. Sais-tu si elle serait compliquée
0
melanie1324 Messages postés 1561 Statut Membre 156
 
Bonjour,

tu vas dans Outils, macro, visual basic editor.
tu fais insertion, module et tu mets :

sub copie ()

i= 1 ' tableau 1 1ère ligne
a= 1 'tableau 2 1ère ligne
do while i <= 80 'une boucle qui travaillera jusqu'à 80 lignes
if sheets("tableau1").cells(i,3) <> "" then 'si dans la feuille tableau1 (que tu dois remplacer par le bon nom) la ligne i et a c est différent à rien
sheets("tableau2").cells(a,3) = sheets("tableau1").cells(i,3) ' alors la ligne a de la colonne c du tableau 2 (que tu dois remplacer par ton nom de feuille) = à laligne i de la colonne c du tableau 1
a=a+1
end if
i=i+1
loop


' ce bout de code permet d'effacer de ta colonne c du tableau2 si tu n'as pas rempli les 80 lignes
if a <> i then
sheets("tableau2").select
range(cells(a,3),cells(80,3)) = ""
end if

loop

end sub
0