Récapitulatif de cellules vides d'un tableau vers d'autre tableau

Ayral10

XLDnaute Junior
Bonjour
Voila , j’arrive pas encore a maitriser certaines formules occasionnellement, et je recherche à créer des tableaux de récapitulatif de stock manquant en deux catégories :

Tableau 1 , la gestion stock neuf et occaz

Je souhaite créer 2 tableaux :

Tableau 2 : un récapitulatif sur des lignes se tenant du stock disponible

Tableau 2 : Idem mais pour les manquants cases avec "x" ( mfc des cases vides en dispo )

Ces tableaux se situeront sur la même feuille si c’est possible , sinon un autre onglet du même classeur. Il faut que ce qui est noté dans les differentes cases sur la même ligne apparaisse pour savoir de quoi il s’agit, et en fin de tableau : le total des valeurs ( « valeur », »Nf », « Occ »
Je pense que l’actualisation se ferait en appuyant l’enregistrement ou F9
Merci d’avance de toute aide, EXCELlente ap-midi !
 

Pièces jointes

  • recapitulatif dispo-manco1.xls
    26 KB · Affichages: 32
  • recapitulatif dispo-manco1.xls
    26 KB · Affichages: 38
  • recapitulatif dispo-manco1.xls
    26 KB · Affichages: 36
Dernière édition:

job75

XLDnaute Barbatruc
Re : Récapitulatif de cellules vides d'un tableau vers d'autre tableau

Bonsoir Ayral10, DoubleZero, poulie,

Dans le fichier joint activez Feuil2 pour obtenir la mise à jour du filtrage.

Les macros dans le code de cette feuille :

Code:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
[2:65536].Delete 'RAZ
Filtre 5, 1, [A2]
Filtre 6, "X", [G2]
Application.ScreenUpdating = True
End Sub

Sub Filtre(col As Byte, crit, dest As Range)
'Feuil1 est le CodeName
Dim plage As Range, h As Long
Set plage = Feuil1.Range("A3", Feuil1.[A65536].End(xlUp)).Resize(, col)
plage.AutoFilter
plage.AutoFilter col, crit
With plage.SpecialCells(xlCellTypeVisible)
  .Copy dest
  h = .Count / col
End With
plage.AutoFilter
dest(1, col).Resize(h) = dest(1, col).Resize(h).Value
If col = 6 Then col = col - 1: dest(1, col).Resize(h).Delete xlToLeft
If h > 1 Then
  dest(1, col).FormulaR1C1 = "=COUNTIF(R[1]C:R[" & h - 1 & "]C,""" & crit & """)"
  With dest.Offset(h).Resize(, 4)
    .FormulaR1C1 = "=SUMPRODUCT(--R[" & 1 - h & "]C:R[-1]C)"
    .Cells(1) = "Totaux"
    .HorizontalAlignment = xlCenter
    .Borders.Weight = xlThin
  End With
End If
End Sub
Et regardez bien les formules :)

Edit : ajouté dest(1, col).Resize(h) = dest(1, col).Resize(h).Value
A+
 

Pièces jointes

  • Recapitulatif(1).xls
    44 KB · Affichages: 34
  • Recapitulatif(1).xls
    44 KB · Affichages: 33
  • Recapitulatif(1).xls
    44 KB · Affichages: 31
Dernière édition:

job75

XLDnaute Barbatruc
Re : Récapitulatif de cellules vides d'un tableau vers d'autre tableau

Bonjour le fil, le forum,

Avec ceci les textes numériques sont convertis en nombres :

Code:
For Each c In dest.Resize(h, col) 'converti les textes en nombres
  If IsNumeric(c) Then c = CDbl(c) Else c = c.Value
Next
On peut alors utiliser la fonction SOMME.

Fichier (2).

A+
 

Pièces jointes

  • Recapitulatif(2).xls
    55.5 KB · Affichages: 31

job75

XLDnaute Barbatruc
Re : Récapitulatif de cellules vides d'un tableau vers d'autre tableau

Re,

S'il y a beaucoup de lignes, il est bien plus rapide d'utiliser un tableau VBA pour la conversion :

Code:
With dest.Resize(h, col)
  T = .Value
  For i = 1 To h
    For j = 1 To col
      If IsNumeric(CStr(T(i, j))) Then T(i, j) = CDbl(T(i, j))
    Next
  Next
  .Value = T
  If col = 6 Then col = 5: .Columns(5).Delete xlToLeft
End With
Fichier (3).

Edit : j'ai ajouté CStr en cas de cellules vides...

A+
 

Pièces jointes

  • Recapitulatif(3).xls
    51 KB · Affichages: 30
Dernière édition:

Ayral10

XLDnaute Junior
Re : Récapitulatif de cellules vides d'un tableau vers d'autre tableau

Bonjour tous le monde !
De par cette chaleur je vous transmet mes remerciements les plus frais !

merci poulie , j'ai regardé ton tableau mais cela ne va pas,

merci double OO, ton tableau fonctionne mais les cellules restent au même nombre , donc c'est pas bon pour moi ,désolé a tous deux ;-)
quant a la solution de Job , le dernier tableau est vraiment ce que j'attendais au mieux, je peux rajouter effectivement des lignes, les modifs sont bien prises en compte; la remarque est donc pertinente quant au nombre élévé de lignes concernées, cela peux atteindre effectivement plusieurs milliers dans mon tableau initial !
donc il faut créer un deuxième onglet de filtrage si j'ai bien capté.
N'étant pas encore adepte du vba , je ne pratique que très rarement des créations plus poussées de tableau et est du mal à tout comprendre, que dois je faire exactement, j'ai peur de faire des bétises dans mon tableau qui m'a déjà prit un an a créer, a référencer.
dans ce que j'ai compris pour le moment, je dois créer un nouvel onglet a côté de celui du tableau concerné dans lequel se fait la filtration et donc mes deux récap du tableau initial, je dois copier un code vba , mais lequel ou les quels ?
merci encore de l'aide !
 

Ayral10

XLDnaute Junior
Re : Récapitulatif de cellules vides d'un tableau vers d'autre tableau

euh , je pense avoir compris où coller le vba, mais j'arrive pas a comprendre le contenu, je voudrais modifier/renomer les colonnes pour que le code puisse fonctionner et coincider pour le tableau original qui sera pris en compte , mais j'ai fait un cafouillage et je sais pas quoi modifier ,voici les colonnes modifiees : (exemple la A devient la B, la B est devenue E, etc... et la première ligne de référence commence à la 6 comme le tableau donc où sera transféré ce vba, j'espère rester clair dans mes explications !!:rolleyes:
 

Pièces jointes

  • Recapitulatif(4).xls
    48 KB · Affichages: 38
  • Recapitulatif(4).xls
    48 KB · Affichages: 31
  • Recapitulatif(4).xls
    48 KB · Affichages: 31

GIBI

XLDnaute Impliqué
Re : Récapitulatif de cellules vides d'un tableau vers d'autre tableau

Bonjour,


deux TCD

J'ai normalisé le tableau (entete et ligne détail) et juste remplacer les X par une valeur pour pouvoir les cumuler

GIBI

PS : attention tu es en calcul manuel
 

Pièces jointes

  • recapitulatif dispo-manco1.xls
    26 KB · Affichages: 23
  • recapitulatif dispo-manco1.xls
    26 KB · Affichages: 24
  • recapitulatif dispo-manco1.xls
    26 KB · Affichages: 25
Dernière édition:

job75

XLDnaute Barbatruc
Re : Récapitulatif de cellules vides d'un tableau vers d'autre tableau

Re,

Vous avez inséré les colonnes C et D de largeur nulle, quelle idée ???

Je les ai supprimées car je ne veux pas jouer à ce petit jeu-là :rolleyes:

Voyez le fichier (4) joint avec la macro adaptée.

A+
 

Pièces jointes

  • Recapitulatif(4).xls
    50.5 KB · Affichages: 35
  • Recapitulatif(4).xls
    50.5 KB · Affichages: 37
  • Recapitulatif(4).xls
    50.5 KB · Affichages: 38

job75

XLDnaute Barbatruc
Re : Récapitulatif de cellules vides d'un tableau vers d'autre tableau

Re,

Bon, si vous tenez absolument à vos colonnes C et D masquées, il suffit d'ajouter + 2 au niveau du filtre :

Code:
Set plage = Feuil1.Range("B6", Feuil1.[B65536].End(xlUp)).Resize(, col + 2)
plage.AutoFilter
plage.AutoFilter col + 2, crit
Fichier (5).

A+
 

Pièces jointes

  • Recapitulatif(5).xls
    48 KB · Affichages: 37

Ayral10

XLDnaute Junior
Re : Récapitulatif de cellules vides d'un tableau vers d'autre tableau

merci , mais pour les colonnes C et D , elles contiennent en fait des précisions ( sur les éléments en stock) que je ne veux pas inserer dans mes récapitulatifs pour simplifier justement au maxi ces derniers , tout simplement !! désolé de ne pas avoir précisé , les améliorations viennent au fur et à mesure de l'évolution de ces tableaux, qui vont grace à vous devenir parfaits !!

Alors je viens de regarder, le tableau est parfait, les résultats correspondent exactement a ce que je recherchais

un grand merçi Job75 pour ton aide, super maîtrise de ces codes, bravo l'expert !

je vais essayer d'adapter ce code a mon tableau, sachant que les onglets s'apellent différemment mais correspondent a des "feuil1", feuil2" etc et je vous tient au courant !
 
Dernière édition:

Ayral10

XLDnaute Junior
Re : Récapitulatif de cellules vides d'un tableau vers d'autre tableau

Bonjour à tous en cette belle journée !

Bon , j'ai essayé le vba sur mon fichier originel à modifier, et c'est la cata !! autant cela fonctionne parfaitement sur le petit tableau joint a ce post, autant sur celui qui doit etre adapté comportant 5000 référence, cela ne vas pas, le fichier se scinde en deux tableau a partir de la ligne 2341 et les références ne correspondent pas en stock dispo ou occ.

le problème est que le fichier est trop lourd , 22 Mo environ , pour être joint sur ce post, qui pourrait m'aider , car je pourrais volontier l'envoyer par @mail ?

merci d'avance
 

job75

XLDnaute Barbatruc
Re : Récapitulatif de cellules vides d'un tableau vers d'autre tableau

Bonjour Ayral10,

Il est en effet possible que s'il y a trop de zones séparées la méthode utilisée ne fonctionne pas.

Alors il suffit de trier le tableau source pour qu'il n'y ait que 2 zones :

Code:
plage.Resize(, 8).Sort plage.Resize(, 8).Columns(col + 2), Header:=xlYes
On termine en triant sur la 1ère colonne :

Code:
plage.Resize(, 8).Sort plage.Resize(, 8).Columns(1), Header:=xlYes
Fichier (6).

PS : je pars à la montagne jusqu'à fin juillet, sans ordi :)

A+
 

Pièces jointes

  • Recapitulatif(6).xls
    50.5 KB · Affichages: 42
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 389
Messages
2 087 928
Membres
103 676
dernier inscrit
Haiti