XL 2013 extraction de lignes

sev31130

XLDnaute Impliqué
bonjour,

Comme vous pourrez le constater je vous joins un bout de fichier, ou il y a les explications;
en fait j'ai un fichier qui fait environ 11 000 lignes et j aimerais extraire mois par mois sur d autres feuille
afin d'établir des comparaisons;
Je pense et j'espère que mes explications seront assez claires pour vous indiquer ce qui me serait agréable

Par avance Merci
 

Pièces jointes

  • essai.xls
    79 KB · Affichages: 54
  • essai.xls
    79 KB · Affichages: 48

sev31130

XLDnaute Impliqué
Re : extraction de lignes

bonjour


en fait en regardant de plus pres je me suis rendu compte que ma pièce jointe ne représentait pas du tout ce que ce voudrais faire
alors je l ai réduit a sa plus simple expression et c est plus lisible

Est ce que ma demande est réalisable
par avance

merci


cordialement

yves
 

Pièces jointes

  • essai.xls
    52 KB · Affichages: 53
  • essai.xls
    52 KB · Affichages: 51
Dernière édition:

job75

XLDnaute Barbatruc
Re : extraction de lignes

Bonjour sev31130,

Problème vraiment très classique.

A force de "travailler" vos tableaux allez-vous finir par comprendre INDEX/EQUIV et SOMMEPROD ?

Dans la feuille "01" formule en C6 :

Code:
=INDEX(T;EQUIV($B6;INDEX(T;;1);0);COLONNES($B6:C6))
Et en K6 :

Code:
=SOMMEPROD((ANNEE(INDEX(T;;1))=ANNEE($J$4))*(MOIS(INDEX(T;;1))=MOIS($J$4))*(INDEX(T;;COLONNES($J6:K6))=$J6))
Le nom T définissant dynamiquement le tableau source :

Code:
=DECALER(générale!$A$15;1;;EQUIV(9^9;générale!$A:$A)-LIGNE(générale!$A$15);7)
Fichier joint.

A+
 

Pièces jointes

  • essai(1).xls
    73 KB · Affichages: 46
  • essai(1).xls
    73 KB · Affichages: 46

job75

XLDnaute Barbatruc
Re : extraction de lignes

Re, bonjour gosselien,

L'inconvenient de la fonction DECALER c'est qu'elle est volatile et donc elle se recalcule chaque fois qu'on modifie une cellule quelconque du classeur.

Alors Le nom T est recalculé ainsi que toutes les formules de toutes les feuilles.

De toute façon il en est de même quand on modifie le tableau source T.

Sur un grand tableau le recalcul peut prendre pas mal de temps.

Pour diminuer le temps de calcul il faut du VBA, par exemple ce code dans ThisWorkbook :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim P As Range, derlig As Variant
If Sh.Name Like "##" Then
  Set P = Sh.[C6:G25] 'plage à adapter éventuellement
  With Sheets("générale")
    derlig = Application.Match(9 ^ 9, .[A:A])
    If IsError(derlig) Then P = "": Exit Sub
    If derlig < 16 Then P = "": Exit Sub
    .Range("A16:G" & derlig).Name = "T" 'nom défini T
  End With
  P = "=SUMPRODUCT((YEAR(INDEX(T,,1))=YEAR($B$4))*(MONTH(INDEX(T,,1))=MONTH($B$4))*(INDEX(T,,COLUMNS($B6:C6))=$B6))"
  P = P.Value 'supprime les formules
End If
End Sub
La macro s'exécute à chaque activation d'une feuille.

Voyez le fichier joint où le tableau source T fait 12000 lignes.

Le temps de calcul chez moi sur Win 8 - Excel 2013 est de 0,6 seconde, ce qui est très acceptable.

A+
 

Pièces jointes

  • essai VBA(1).xls
    615 KB · Affichages: 53
  • essai VBA(1).xls
    615 KB · Affichages: 53

sev31130

XLDnaute Impliqué
Re : extraction de lignes

Re, bonjour gosselien,

L'inconvenient de la fonction DECALER c'est qu'elle est volatile et donc elle se recalcule chaque fois qu'on modifie une cellule quelconque du classeur.

Alors Le nom T est recalculé ainsi que toutes les formules de toutes les feuilles.

De toute façon il en est de même quand on modifie le tableau source T.

Sur un grand tableau le recalcul peut prendre pas mal de temps.

Pour diminuer le temps de calcul il faut du VBA, par exemple ce code dans ThisWorkbook :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim P As Range, derlig As Variant
If Sh.Name Like "##" Then
  Set P = Sh.[C6:G25] 'plage à adapter éventuellement
  With Sheets("générale")
    derlig = Application.Match(9 ^ 9, .[A:A])
    If IsError(derlig) Then P = "": Exit Sub
    If derlig < 16 Then P = "": Exit Sub
    .Range("A16:G" & derlig).Name = "T" 'nom défini T
  End With
  P = "=SUMPRODUCT((YEAR(INDEX(T,,1))=YEAR($B$4))*(MONTH(INDEX(T,,1))=MONTH($B$4))*(INDEX(T,,COLUMNS($B6:C6))=$B6))"
  P = P.Value 'supprime les formules
End If
End Sub
La macro s'exécute à chaque activation d'une feuille.

Voyez le fichier joint où le tableau source T fait 12000 lignes.

Le temps de calcul chez moi sur Win 8 - Excel 2013 est de 0,6 seconde, ce qui est très acceptable.

A+

Bonjour,


en premier lieu un grand merci à tout le monde, et en particulier à M.JOB75.
Je n'ai pas répondu avant, je voulais l'utiliser et voir les possibilités que j'avais afin de ne pas vous ennuyer sans arrêt
La méthode de la macro est merveilleuse, il y a double problème à mon niveau
1° j'aurais aimé avoir la présentation des feuilles ci-jointes, sachant que la structure ne varie pas d'année en année
2° la question que je me pose (dans le cas ou cette présentation est faisable) et que je vous pose pour l'année en cours et le mois en cours, je mets à jour tous les après midi, (ce qui me permet de constater les numéros qui ont toujours "0")est ce que le calcul se fait automatiquement, du fait que la macro se lance lors de la validation de la feuille ?
Si l'on peut résoudre ces deux problèmes, c'est parfait

Explication de l avantage d avoir mois par mois sur la même feuille
Regardez 02/16 les numéros 05 et 16 finissent le mois avec 0 en colonne 1, en 03/16 le 05 à déjà 4 et le 16 a déjà 03 en colonne 1, donc indications très utiles.
MERCI

cordialement

Yves

PS j'ai du couper le fichier générale pour rentrer en poids sinon je dépassais les 256 ko, mais je démarre bien en 2005,
donc je créerais les feuilles de 2005 à 2016 année par année et mois par mois dans chaque feuille
 

Pièces jointes

  • presentation.xls
    230.5 KB · Affichages: 38

sev31130

XLDnaute Impliqué
Re : extraction de lignes

bonjour

j ai peut-être omis de dire que je m'adressais a M.JOB75 pour savoir si ce que je voudrais est réalisable (mais je suppose et je comprends qu'il y a d'autres personnes qui ont tout autant besoin de lui et de vous toutes et tous qui êtes une équipe super sympa)
Par avance merci

A vous tous
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : extraction de lignes

Bonsoir Yves,

La macro du post #5 n'est pas trop difficile à adapter pour 12 tableaux :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim r As Range, derlig As Variant, P As Range, a$, b$, c$
Application.ScreenUpdating = False
If Sh.Name Like "####" Then
  Set r = Sh.[B6,I6,P6,W6,AD6,AK6,B30,I30,P30,W30,AD30,AK30] '1ères cellules des 12 tableaux
  With Sheets("generale") 'plus d'accents ?
    derlig = Application.Match(9 ^ 9, .[A:A])
    If IsNumeric(derlig) Then If derlig > 1 Then .Range("A2:G" & derlig).Name = "T" 'nom défini
  End With
  For Each r In r
    Set P = r.Resize(20, 5)
    If IsError(derlig) Then P = "": GoTo 1
    If derlig < 2 Then P = "": GoTo 1
    a = P(-1, 0).Address '$A$4 sur le 1er tableau
    b = P(1, 0).Address(0, 1) '$A6 sur le 1er tableau
    c = b & ":" & P(1).Address(0, 0) '$A6:B6 sur le 1er tableau
    P = "=SUMPRODUCT((YEAR(INDEX(T,,1))=YEAR(" & a & "))*(MONTH(INDEX(T,,1))=MONTH(" & a & "))*(INDEX(T,,COLUMNS(" & c & "))=" & b & "))"
    P = P.Value 'supprime les formules
1 Next
End If
End Sub
Il fallait surtout faire attention aux références - absolues ou relatives - de la formule (variables a b c).

Fichier joint.

Bonne fin de soirée.
 

Pièces jointes

  • presentation(1).xls
    245 KB · Affichages: 33

job75

XLDnaute Barbatruc
Re : extraction de lignes

Bonjour Yves, le forum,

Chez moi sur Win 8 - Excel 2013 la macro précédente s'exécute en 1,3 seconde.

On peut aller beaucoup plus vite mais avec 2 conditions pour le tableau de la feuille "general" :

- on a le droit de le trier sur les dates si ce n'est pas déjà fait

- il n'y a qu'une seule ligne par jour.

La nouvelle macro dans ThisWorkbook :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim r As Range, derlig&, tablo As Range, j&, dj&, a$, b$, c$
If Sh.Name Like "####" Then
  Application.ScreenUpdating = False
  Set r = Sh.[B6,I6,P6,W6,AD6,AK6,B30,I30,P30,W30,AD30,AK30] '1ères cellules des 12 tableaux
  With Sheets("generale") 'plus d'accents ?
    If .FilterMode Then .ShowAllData 'en cas de filtrage
    derlig = .Cells(.Rows.Count, 1).End(xlUp).Row
    If derlig > 1 Then
      Set tablo = .Range("A2:G" & derlig)
      tablo.Sort tablo(1), xlAscending, Header:=xlNo 'tri sur les dates
      Set tablo = tablo.Resize(Application.Count(tablo.Columns(1))) 'en cas de lignes vides
      'tablo.Name = "TB" 'si l'on voulait utiliser ce nom ailleurs
    End If
  End With
  For Each r In r
    Set r = r.Resize(20, 5) 'le tableau à remplir
    If derlig < 2 Then r = "": GoTo 1
    j = DateSerial(Year(r(-1, 0)), Month(r(-1, 0)), 1) '1er jour du mois, au cas où...
    dj = DateSerial(Year(j), Month(j) + 1, 0) 'dernier jour du mois
    If dj < tablo(1) Or j > tablo(tablo.Rows.Count, 1) Then r = "": GoTo 1
    If j < tablo(1) Then j = 1 Else j = Application.Match(j, tablo.Columns(1))
    tablo.Rows(j).Resize(31).Name = "T" 'nom défini T sur 31 jours
    a = r(-1, 0).Address '$A$4 sur le 1er tableau
    b = r(1, 0).Address(0, 1) '$A6 sur le 1er tableau
    c = b & ":" & r(1).Address(0, 0) '$A6:B6 sur le 1er tableau
    r = "=SUMPRODUCT((YEAR(INDEX(T,,1))=YEAR(" & a & "))*(MONTH(INDEX(T,,1))=MONTH(" & a & "))*(INDEX(T,,COLUMNS(" & c & "))=" & b & "))"
    r = r.Value 'supprime les formules
1 Next
End If
End Sub
Chez moi elle s'exécute en 0,05 seconde sur 2015, c'est quasi instantané.

C'est évidemment dû au fait que SUMPRODUCT/SOMMEPROD travaille maintenant sur 31 jours seulement.

Fichier joint.

Edit 1 : notez que s'il manque des jours dans le tableau de "generale" ça n'a aucune espèce d'importance.

Edit 2 : dans le cas - très improbable - où il y aurait des heures ajoutées aux dates de "generale", il faudrait dans la macro remplacer 31 (jours) par 32.

Bonne journée.
 

Pièces jointes

  • presentation avec tri(1).xls
    249.5 KB · Affichages: 26
Dernière édition:

job75

XLDnaute Barbatruc
Re : extraction de lignes

Re,

Vu la grande rapidité d'exécution on peut sans inconvénient utiliser une macro Workbook_SheetChange :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim r As Range, derlig&, tablo As Range, j&, dj&, a$, b$, c$
If Sh.Name Like "####" Then
  Application.ScreenUpdating = False
  Application.EnableEvents = False 'désactive les évènements
  Set r = Sh.[B6,I6,P6,W6,AD6,AK6,B30,I30,P30,W30,AD30,AK30] '1ères cellules des 12 tableaux
  With Sheets("generale") 'plus d'accents ?
    If .FilterMode Then .ShowAllData 'en cas de filtrage
    derlig = .Cells(.Rows.Count, 1).End(xlUp).Row
    If derlig > 1 Then
      Set tablo = .Range("A2:G" & derlig)
      tablo.Sort tablo(1), xlAscending, Header:=xlNo 'tri sur les dates
      Set tablo = tablo.Resize(Application.Count(tablo.Columns(1))) 'en cas de lignes vides
      'tablo.Name = "TB" 'si l'on voulait utiliser ce nom ailleurs
    End If
  End With
  For Each r In r
    Set r = r.Resize(20, 5) 'le tableau à remplir
    If derlig < 2 Then r = "": GoTo 1
    j = DateSerial(Year(r(-1, 0)), Month(r(-1, 0)), 1) '1er jour du mois, au cas où...
    dj = DateSerial(Year(j), Month(j) + 1, 0) 'dernier jour du mois
    If dj < tablo(1) Or j > tablo(tablo.Rows.Count, 1) Then r = "": GoTo 1
    If j < tablo(1) Then j = 1 Else j = Application.Match(j, tablo.Columns(1))
    tablo.Rows(j).Resize(31).Name = "T" 'nom défini T sur 31 jours
    a = r(-1, 0).Address '$A$4 sur le 1er tableau
    b = r(1, 0).Address(0, 1) '$A6 sur le 1er tableau
    c = b & ":" & r(1).Address(0, 0) '$A6:B6 sur le 1er tableau
    r = "=SUMPRODUCT((YEAR(INDEX(T,,1))=YEAR(" & a & "))*(MONTH(INDEX(T,,1))=MONTH(" & a & "))*(INDEX(T,,COLUMNS(" & c & "))=" & b & "))"
    r = r.Value 'supprime les formules
1 Next
  Application.EnableEvents = True 'réactive les évènements
End If
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Workbook_SheetActivate Sh 'appelle la macro
End Sub
Il a suffit d'ajouter les Application.EnableEvents.

Notez que la modification ou l'effacement d'une plage comme B6:F25 sont rendus impossibles.

Fichier (2).

Edit : vous aviez mis une MFC pour certaines valeurs 0, je l'ai mise sur A6:AO49 =""&A6="0"

A+
 

Pièces jointes

  • presentation avec tri(2).xls
    259 KB · Affichages: 38
Dernière édition:

sev31130

XLDnaute Impliqué
Re : extraction de lignes

Re,

Vu la grande rapidité d'exécution on peut sans inconvénient utiliser une macro Workbook_SheetChange :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim r As Range, derlig&, tablo As Range, j&, dj&, a$, b$, c$
If Sh.Name Like "####" Then
  Application.ScreenUpdating = False
  Application.EnableEvents = False 'désactive les évènements
  Set r = Sh.[B6,I6,P6,W6,AD6,AK6,B30,I30,P30,W30,AD30,AK30] '1ères cellules des 12 tableaux
  With Sheets("generale") 'plus d'accents ?
    If .FilterMode Then .ShowAllData 'en cas de filtrage
    derlig = .Cells(.Rows.Count, 1).End(xlUp).Row
    If derlig > 1 Then
      Set tablo = .Range("A2:G" & derlig)
      tablo.Sort tablo(1), xlAscending, Header:=xlNo 'tri sur les dates
      Set tablo = tablo.Resize(Application.Count(tablo.Columns(1))) 'en cas de lignes vides
      'tablo.Name = "TB" 'si l'on voulait utiliser ce nom ailleurs
    End If
  End With
  For Each r In r
    Set r = r.Resize(20, 5) 'le tableau à remplir
    If derlig < 2 Then r = "": GoTo 1
    j = DateSerial(Year(r(-1, 0)), Month(r(-1, 0)), 1) '1er jour du mois, au cas où...
    dj = DateSerial(Year(j), Month(j) + 1, 0) 'dernier jour du mois
    If dj < tablo(1) Or j > tablo(tablo.Rows.Count, 1) Then r = "": GoTo 1
    If j < tablo(1) Then j = 1 Else j = Application.Match(j, tablo.Columns(1))
    tablo.Rows(j).Resize(31).Name = "T" 'nom défini T sur 31 jours
    a = r(-1, 0).Address '$A$4 sur le 1er tableau
    b = r(1, 0).Address(0, 1) '$A6 sur le 1er tableau
    c = b & ":" & r(1).Address(0, 0) '$A6:B6 sur le 1er tableau
    r = "=SUMPRODUCT((YEAR(INDEX(T,,1))=YEAR(" & a & "))*(MONTH(INDEX(T,,1))=MONTH(" & a & "))*(INDEX(T,,COLUMNS(" & c & "))=" & b & "))"
    r = r.Value 'supprime les formules
1 Next
  Application.EnableEvents = True 'réactive les évènements
End If
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Workbook_SheetActivate Sh 'appelle la macro
End Sub
Il a suffit d'ajouter les Application.EnableEvents.

Notez que la modification ou l'effacement d'une plage comme B6:F25 sont rendus impossibles.

Fichier (2).

Edit : vous aviez mis une MFC pour certaines valeurs 0, je l'ai mise sur A6:AO49 =""&A6="0"

A+


Bonjour,


Je reconnais la pertinence de votre message et comme vous pourrez le remarquer j'ai par habitude de répondre dans les minutes voire les heures qui suivent, malheureusement pour cette fois, j'ai du aller voir mes enfants en Avignon alors que j'habite Toulouse, je suis rentré ce matin, je viens de l'essayer et je m'empresse de vous écrire.
Dans un premier temps je dirais que cette macro est bien ce que je recherchais et qu'elle va me permettre de pouvoir faire ce que je voulais, avec les mises à jour, le temps de réaction est parfait, (entre 0.08 et 0.10) ce qui est vraiment sensationnel, super travail Mille merci
Dans un second temps et pour vous donner raison sur la remarque c'est que je vais encore une fois demander votre aide, est il possible de faire la même macro, pour la même structure de page, la même structure de tableau dans les pages, mais les feuilles seront 01, 02 03 etc jusqu'à 12 et ou nous trouverions par exemple sur 01
01/2005- 01/2006 jusuq'en 2016 et prevoir que tous les ans on ajoute le 01 sur la 01...
Si mes explications ne sont pas assez claires je vous joins une feuille
Par avance merci
En tout état de cause Mille merci et après que je vous remercie encore et encore tant cela me sert bien, nous pourrons fermer le post

cordialement
 

Pièces jointes

  • exemple.xls
    230.5 KB · Affichages: 33
  • exemple.xls
    230.5 KB · Affichages: 46

job75

XLDnaute Barbatruc
Re : extraction de lignes

Bonjour Yves,

Il suffisait de modifier le 1er test If...Then et les adresses des tableaux (1ères cellules).

Par ailleurs vous avez supprimé la ligne des titres en feuille "générale", j'ai donc introduit la variable titre pour que la macro fonctionne bien avec ou sans titres.

Donc recopiez ce code dans ThisWorkbook :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim r As Range, titre%, derlig&, tablo As Range, j&, dj&, a$, b$, c$
If Sh.Name Like "##" Then
  Application.ScreenUpdating = False
  Application.EnableEvents = False 'désactive les évènements
  On Error Resume Next 'sécurité
  Set r = Sh.[B6,I6,P6,W6,AD6,AK6,AR6,B30,I30,P30,W30,AD30] '1ères cellules des 12 tableaux
  With Sheets("générale")
    titre = -(Not IsDate(.[A1])) 'renvoie 1 si ligne de titres sinon 0
    If .FilterMode Then .ShowAllData 'en cas de filtrage
    derlig = .Cells(.Rows.Count, 1).End(xlUp).Row
    If derlig > titre Then
      Set tablo = .Range("A" & titre + 1 & ":G" & derlig)
      tablo.Sort tablo(1), xlAscending, Header:=xlNo 'tri sur les dates
      Set tablo = tablo.Resize(Application.Count(tablo.Columns(1))) 'en cas de lignes vides
      'tablo.Name = "TB" 'si l'on voulait utiliser ce nom ailleurs
    End If
  End With
  For Each r In r
    Set r = r.Resize(20, 5) 'le tableau à remplir
    If derlig = titre Then r = "": GoTo 1
    j = DateSerial(Year(r(-1, 0)), Month(r(-1, 0)), 1) '1er jour du mois, au cas où...
    dj = DateSerial(Year(j), Month(j) + 1, 0) 'dernier jour du mois
    If dj < tablo(1) Or j > tablo(tablo.Rows.Count, 1) Then r = "": GoTo 1
    If j < tablo(1) Then j = 1 Else j = Application.Match(j, tablo.Columns(1))
    tablo.Rows(j).Resize(31).Name = "T" 'nom défini T sur 31 jours
    a = r(-1, 0).Address '$A$4 sur le 1er tableau
    b = r(1, 0).Address(0, 1) '$A6 sur le 1er tableau
    c = b & ":" & r(1).Address(0, 0) '$A6:B6 sur le 1er tableau
    r = "=SUMPRODUCT((YEAR(INDEX(T,,1))=YEAR(" & a & "))*(MONTH(INDEX(T,,1))=MONTH(" & a & "))*(INDEX(T,,COLUMNS(" & c & "))=" & b & "))"
    r = r.Value 'supprime les formules
1 Next
  Application.EnableEvents = True 'réactive les évènements
End If
End Sub
A+
 
Dernière édition:

sev31130

XLDnaute Impliqué
Re : extraction de lignes

Bonjour Job 75

Je viens de voir la réponse, donc un premier merci pour.
j ai copié la ligne d'entête en effet que j avais enlevé lorsque j ai du sectionner le fichier
pour avoir le poids requis, mais donc c'est remis, et j'ai copier comme vous me l'indiquiez
eh bien que dire c'est merveilleux car j'ai su faire la copie et que cela fonctionne a merveille

Encore mille merci et encore une fois mes excuses pour la non réponses la semaine dernière

Nous pouvons fermer le post avec mes respects à vous toutes et tous pour ce labeur que vous
avez la gentillesse de mettre à notre disposition
Et une mention spéciale à mon bienfaiteur JOB75
Cordialement

yves

PS une question me vient à l'esprit dans les feuilles des classeurs, tout en gardant la structure de chaque mois et pour les années a venir
est ce que je peux continuer en descendant ou dois- je continuer dans la longueur de la feuille
merci par avance
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : extraction de lignes

Re,

est ce que je peux continuer en descendant ou dois- je continuer dans la longueur de la feuille

Dans les feuilles des mois vous mettez vos tableaux où vous voulez.

Comprenez une fois pour toutes qu'il faut simplement renseigner la liste dans Set r = Sh.[xxx,yyy,zzz,...]

Edit : pour les titres avez-vous vu qu'à 15h21 j'ai ajouté la variable titre ?

A+
 
Dernière édition:

sev31130

XLDnaute Impliqué
Re : extraction de lignes

bonjour,

pour le post de 15h21 j'ai vu il me semble que vous avez rajouter une variable qui permet avec ou sans titre que cela fonctionne (malgré tout je n'avais pas remarqué que j avais enlevé la ligne de titre, mais je l'ai rajouté, je pense que c'est cette ligne de la macro : titre = -(Not IsDate(.[A1])) 'renvoie 1 si ligne de titres sinon 0

Bien compris vos explications pour la suite et pour inclure un tableau il me suffit de rajouter la première cellule dans cette ligne de la macro et ainsi le tour est joué : Set r = Sh.[B6,I6,P6,W6,AD6,AK6,AR6,B30,I30,P30,W30,AD30] '1ères cellules des 12 tableaux

Je me permettrais dans l'instant qui va suivre de vous demander un conseil le temps de faire une feuille d'exemple

Encore une corbeille de merci

Cordialement

yves
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 015
Membres
101 867
dernier inscrit
XFPRO