Rapporter cellules non vides de plusieurs feuilles dans une seule

Résolu
akb213 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -  
akb213 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaite regroupe les valeurs de plusieurs cellules dans une colonne dans une autre feuilles.

Dans chaque feuilles j'ai une colonne, dans cette colonne certaines cellules sont remplies (j'ai 12 feuilles)

Je souhaite regrouper ces valeurs clairsemées dans une feuille finale , sans vides, avez vous une idée de forumle pour m'aider ?

Merci


Configuration: Windows / Firefox 63.0
A voir également:

3 réponses

titeufdu89 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   38
 
Bonsoir,

Le mieux serait que tu fournisse un exemple de ton fichier (dépourvu d'informations confidentielles) afin que l'on puisse créer un code correspondant à tes besoins. Tu peux utiliser le site gratuit suivant pour : https://www.cjoint.com/

Jc
1
akb213 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir,
merci pour ta proposition,
le dossier étant protégé, j'en ai crée un beaucoup plus simple mais qui illustre ce que je veux faire
https://www.cjoint.com/c/HKCt3MIS7bU

Voilà dans les feuilles mois j'ai les valeurs A et B et d'autres colonnes , à la fin dans le récapitulatif annuel je veux récupérer les valeurs dans un tableaux sans cellules vides.

Merci beaucoup
0
titeufdu89 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   38
 
Bonsoir,

Voici un code qui permettrait de créer un récapitulatif
Sub actualiser()
Dim ws, recap As Object
Dim lig, i As Long
Set recap = Worksheets("Récapitulatif Annuel")

'suppression de la feuille récap
recap.Range("A2:D" & Range("A65536").End(xlUp).Row + 4).ClearContents
lig = 2

'ajout des informations de chaque feuille
For Each ws In Worksheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"))
    For i = 2 To ws.Range("A65536").End(xlUp).Row
    If ws.Range("A" & i) <> "" Then
    'ajout date
    ws.Range("A" & i).Copy recap.Range("B" & lig)
    ws.Range("C" & i & ":D" & i).Copy recap.Range("C" & lig)
    lig = lig + 1
    End If
    Next i
Next ws

'ajout des totaux
recap.Range("B" & lig) = "Total"
recap.Range("C" & lig).FormulaR1C1 = "=SUM(R2C3:R[-1]C)"
recap.Range("D" & lig).FormulaR1C1 = "=SUM(R2C4:R[-1]C)"
recap.Range("B" & lig + 1) = "Moyenne"
recap.Range("C" & lig + 1).FormulaR1C1 = "=AVERAGE(R2C3:R[-2]C)"
recap.Range("D" & lig + 1).FormulaR1C1 = "=AVERAGE(R2C4:R[-2]C)"
recap.Range("B" & lig + 2) = "EcartType"
recap.Range("C" & lig + 2).FormulaR1C1 = "=STDEV(R2C3:R[-3]C)"
recap.Range("D" & lig + 2).FormulaR1C1 = "=STDEV(R2C4:R[-3]C)"
recap.Range("C" & lig & ":D" & lig + 2).Style = "Comma"
End Sub


Et ci joint le fichier en question actualisé
https://www.cjoint.com/c/HKCuK6UPtzN

Bonne fin de journée

Jc
0
titeufdu89 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   38
 
Petit ajustement la partie suppression de la feuille récap, code à remplacer par :
'suppression de la feuille récap
recap.Range("A2:D" & Range("B65536").End(xlUp).Row + 4).ClearContents
lig = 2
0
akb213 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup,
si je comprends bien c'est code VBA ? Une solution avec les formules classiques de EXCEL serait trop compliquée ?
Je n'ai pas pu ouvrir le fichier actualisé, excel me dit que l'extension ou le formt ne sont pas bons, est-ce du à ma version de Excel(2007) ?

En tout cas merci beaucoup pour votre temps et votre aide
0
titeufdu89 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   38
 
C'est effectivement un code VBA car en formule pour rechercher sur 12 feuilles à la suite ça me parait vraiment compliqué et lourd à mettre place (si tant est que ce soit possible... perso je n'ai pas les compétences pour t'aider sur un tel projet en formules).
Pour ouvrir le lien, sur le site cjoint clique sur enregistrer le fichier avant de l'ouvrir et dans son emplacement vérifie que l'extension du fichier est bien ".xlsm" si ce n'est pas le cas modifie la manuellement avant de l'ouvrir en renommant le fichier car il arrive qu'avec cjoint les extensions soient modifiées.

Jc
0
akb213 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   > titeufdu89 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention  
 
D'accord, Merci beaucoup en tout cas, j'ai réussit à ouvrir le fichier avec tes instructions.
0
akb213 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai appliqué le code , avec des modifications au fichier , j'ai obtenu ce que je voulais

Merci
0