Tableau récapitulatif

pibov

XLDnaute Nouveau
Bonjour le forum,
Je m'adresse à vous et à votre sagacité afin de trouver une solution à un problème :

Dans une feuille de calcul, j'ai un tableau (comprenant plusieurs centaines d'items) qui, en fonction des données calculées par d'autres matrices, reçoit dans certaines lignes une valeur numérique. Si aucune donnée n'est reçue, la cellule en regard de l'intitulé de l'item reste vide.

Dans un autre tableau, j'aimerais faire un récapitulatif qui ne reprend que les données (ainsi, évidemment, que l'intitulé de l'item correspondant) et mais omettant tous les items dont le nombre est à vide. Le tableau récapitulatif est donc, par la force des choses, beaucoup moins important que le tableau de référence, le nombre de lignes remplies pouvant être seulement de quelques unités.

Fus-je assez clair ? :p Afin d'illustrer ma demande, je joints un petit tableau (simplifié) que je pense -modestement - être assez explicite.

Quelqu'un pourrait-il m'aider à résoudre ce problème sur lequel je bute depuis quelque temps ?

Merci d'avance et bonne journée à tous les lecteurs

Pibov
 

Pièces jointes

  • Classeur tableau.xlsx
    9.4 KB · Affichages: 50
  • Classeur tableau.xlsx
    9.4 KB · Affichages: 46

Robert

XLDnaute Barbatruc
Repose en paix
Re : Tableau récapitulatif

Bonjour Pibov, bonjour le forum,

En piece jointe ton fichier modifié avec le code ci-dessous :
Code:
Sub Macro1()
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim dest As Range 'déclare la variable dest (celllule de DESTination)

Range("F5").CurrentRegion.Clear 'supprime les anciennes données
Range("C5").Copy Range("F5") 'place "Nombre" en F5
dl = Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne éditée de la colonne 2 (=B)
Set pl = Range("B6:B" & dl) 'définit la plage pl
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
    If cel.Offset(0, 1).Value <> "" Then 'condition : si la cellule en colonne C n'est pas vide
        'définit la cellule de destination (E6 si E6 est vide, sinon la première ligne vide de la colonne 5 (=E)
        Set dest = IIf(Range("E6").Value = "", Range("E6"), Cells(Application.Rows.Count, 5).End(xlUp).Offset(1, 0))
        cel.Resize(1, 2).Copy dest 'copy les deux cellules et les colle dans dest
    End If 'fin de la condition
Next cel 'prochaine cellule de la boucle
End Sub
Le fichier :
 

Pièces jointes

  • pibov_v01.xls
    37 KB · Affichages: 46

pibov

XLDnaute Nouveau
Re : Tableau récapitulatif

Bonjour Robert, re-bonjour le forum,

Ce forum et les gens qui y contribuent sont fantastiques !!!

Merci pour ce travail hyper-rapide, ça correspond tout à fait à ce que je cherchais. Il ne me reste plus qu'à essayer de comprendre comment fonctionne cette routine (et ça, c'est pas gagné, je ne suis qu'un modeste amateur en VBA :eek: ).

Un petit bonjour à ta belle région, sûrement plus ensoleillée que ma grisaille liégeoise.

Pibov
 

Discussions similaires

Statistiques des forums

Discussions
312 432
Messages
2 088 373
Membres
103 835
dernier inscrit
Jaco24