XL 2013 Comment alimenter une seconde feuille automatiquement à partir d"une référence saisie

samimi94

XLDnaute Occasionnel
Bonsoir à tous,

Je sollicite votre aide et votre expertise pour réaliser une synthèse rapide d'un fichier lourd en données (onglet 1) qui alimenterait un second onglet automatiquement via une référence saisie (présente dans l'onglet 1).

Je m'explique en espérant parvenir à être le plus explicite possible.

Dans mon onglet 1 je possède plusieurs données (référence, nom client, adresse, et plusieurs montants).
Il arrive qu'une même référence possède plusieurs lignes renseignées avec plusieurs montants et pas toujours les unes à la suite des autres.
Afin de na pas avoir à faire défiler toutes mes lignes (des milliers) et surtout pouvoir faire la somme de tous mes montants de manière automatique, je souhaiterai que toutes les données d'une référence soient renseignées dans un onglet 2 lorsque je saisi la référence concernée.
La référence est renseignée en colonne A de mon onglet 1, je souhaiterai savoir s'il est possible, en saisissant dans l'onglet 2 la référence de mon choix, qu'un tableau s'auto-alimente dans ce même onglet en reprenant toutes les informations de l'onglet 1 liées à cette référence.

En espérant ne pas avoir été trop brouillon, je vous joint un fichier test qui pourra probablement mieux expliquer ce que je souhaiterai obtenir comme résultat final.

Je vous remercie par avance pour votre précieuse aide.
 

Pièces jointes

  • Test.xlsx
    12.7 KB · Affichages: 56
  • Test.xlsx
    12.7 KB · Affichages: 62

samimi94

XLDnaute Occasionnel
Re : Comment alimenter une seconde feuille automatiquement à partir d"une référence s

Boisgontier,

En effet, en un clic ça fonctionne et plus de 0 et de date dans les cellules vides.
En appliquant ce paramètre sur mon fichier est-ce que celui-ci est par défaut pour toutes les personnes qui l'utiliseront ou devront elles également aller dans les options Excel ?

Merci.

Samimi94.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Comment alimenter une seconde feuille automatiquement à partir d"une référence s

Les options sont sauvegardées avec le classeur. Il n'est plus nécessaire de les modifier.

PS: l'option d'affichage des 0 concerne toute la feuille. Si on veut masquer les 0 pour un champ seulement , appliquer à ce champ le format nombre 0;;

Cf Formats des nombres

JB
 
Dernière édition:

samimi94

XLDnaute Occasionnel
Re : Comment alimenter une seconde feuille automatiquement à partir d"une référence s

C'est génial.

Boisgontier, Job75, R@chid et vous tous qui prenaient de votre temps pour nous venir en aide, je vous remercie grandement.

Je vous souhaite un bon WE.
 

R@chid

XLDnaute Barbatruc
Re : Comment alimenter une seconde feuille automatiquement à partir d"une référence s

Bonsoir @ tous,
Salut Job75, Salut JB.
samimi94 :
moi j'ai rien fait je suis comme toi + quelques formules que je sache faire rien de plus.
Bravo aux VBAistes.

@ + +
 

job75

XLDnaute Barbatruc
Re : Comment alimenter une seconde feuille automatiquement à partir d"une référence s

Bonsoir samimi94, R@chid, JB,

Une tout autre manière de procéder, avec une macro événementielle :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [B3]) Is Nothing Then Exit Sub
Dim critere, t, col, ncol%, j%, rest(), i&, n&
critere = [B3]
'---préparation---
t = Feuil1.[A1].CurrentRegion 'CodeName de la feuille
col = [Tableau].Rows(1)
ncol = UBound(col, 2)
For j = 1 To ncol
  col(1, j) = Application.Match(col(1, j), Application.Index(t, 1, 0), 0)
Next
'---création du tableau rest---
ReDim rest(1 To UBound(t), 1 To ncol)
For i = 2 To UBound(t)
  If t(i, 1) = "" Then t(i, 1) = t(i - 1, 1)
  If t(i, 1) = critere Then
    n = n + 1
    For j = 1 To ncol
      rest(n, j) = t(i, col(1, j))
    Next j
  End If
Next i
'---dimensionnement et restitution---
With [Tableau]
  If n + IIf(n, 2, 3) < .Rows.Count Then
    .Rows(2).Resize(.Rows.Count - n - IIf(n, 2, 3)).Delete xlUp
  ElseIf n + 2 > .Rows.Count Then
    .Rows(3).Resize(n + 2 - .Rows.Count).Insert xlDown
  End If
  If n Then .Rows(2).Resize(n) = rest Else .Rows(2) = ""
  n = .Rows.Count
  .Cells(n, 2).Resize(, ncol - 1) = "=SUM(R[-" & n - 2 & "]C:R[-1]C)"
End With
End Sub
Avantage : le tableau est redimensionné en fonction du résultat.

Fichier joint.

Bonne fin de soirée.
 

Pièces jointes

  • samimi94 macro événementielle(1).xlsm
    26.7 KB · Affichages: 14

job75

XLDnaute Barbatruc
Re : Comment alimenter une seconde feuille automatiquement à partir d"une référence s

Re,

Dans ce fichier j'ai ajouté une ListBox et plusieurs macros supplémentaires.

A+
 

Pièces jointes

  • samimi94 ListBox(1).xlsm
    41.4 KB · Affichages: 20

Discussions similaires