Génération auto de tableau

Bradvid

XLDnaute Occasionnel
Bonjour le Forum,

J'ai un fichier avec un nombre conséquent de colonnes.
Je souhaiterais pouvoir établir un mini reporting en allant chercher automatiquement (par le biais d'un bouton) les informations contenues dans certaines colonnes de ce fichier. Le nombre de lignes n'étant pas définit à l'avance...

Si quelqu'un pouvait m'aider, merci beaucoup.
 

Bradvid

XLDnaute Occasionnel
Re : Génération auto de tableau

Bonjour le Forum,

J'ai un fichier avec un nombre conséquent de colonnes.
Je souhaiterais pouvoir établir un mini reporting en allant chercher automatiquement (par le biais d'un bouton) les informations contenues dans certaines colonnes de ce fichier. Le nombre de lignes n'étant pas définit à l'avance...

Si quelqu'un pouvait m'aider, merci beaucoup.

Rebonjour,

Un petit fichier exemple pourrait peut être vous éclairer...

Merci encore.
 

Pièces jointes

  • Tableau auto.xls
    19 KB · Affichages: 87

Bradvid

XLDnaute Occasionnel
Re : Génération auto de tableau

Bonjour, par un filtre élaboré.
télécharge le fichier joint, dézippe-le dans le même répertoire, et regarde.
reviens si tu as un souci

Salut bhbb,

Merci pour ton retour mais ce n'est pas tout à fait cela que je recherche.

J'ai récupéré une macro d'un ancien fichier qui correspond presque à ce que je veux mais il me manque quelquechose.
Celle-ci allait chercher toujours les même celulles dasn différents fichiers d'un répertoire alors que maintenant je souhaiterais aller chercher dans un même fichier des celulles fixes au niveau des colonnes mais dynamique au niveau des lignes.

Voici la macro que j'utilise :
Code:
Sub chercheFichiersFermesV03()
Dim X As Integer, nbFichiers As Integer, Y As Integer, N As Integer
Dim Tableau() As String
Dim Direction As String

Application.ScreenUpdating = False
Direction = Dir("C:\RECAP.xls")
Do While Len(Direction) > 0
nbFichiers = nbFichiers + 1
ReDim Preserve Tableau(1 To nbFichiers)
Tableau(nbFichiers) = Direction
Direction = Dir()
Loop

If nbFichiers > 0 Then
Y = 6
N = 9
For X = 1 To nbFichiers
If Tableau(X) <> ThisWorkbook.Name Then
With ActiveSheet
.Cells(Y, 1).Formula = "='C:\[" & Tableau(X) & "]Feuille1" & "'!" & "A" & N
.Cells(Y, 2).Formula = "='C:\[" & Tableau(X) & "]Feuille1" & "'!" & "B" & N
.Cells(Y, 3).Formula = "='C:\[" & Tableau(X) & "]Feuille1" & "'!" & "E" & N
.Cells(Y, 4).Formula = "='C:\[" & Tableau(X) & "]Feuille1" & "'!" & "F" & N
.Cells(Y, 5).Formula = "='C:\[" & Tableau(X) & "]Feuille1" & "'!" & "Q" & N
End With
Y = Y + 1
N = N + 1
End If
Next X
End If
Application.ScreenUpdating = True
End Sub

Cette macro fonctionne mais elle s'arrête à la première ligne, pourrais tu m'aider à la corriger?
Merci encore pour ton aide.
 

Cousinhub

XLDnaute Barbatruc
Re : Génération auto de tableau

Re-,
après essai de ton code, il me semble que ce que je t'ai proposé est exactement la même chose, en bien plus simple, et fiable
tu n'as que un fichier à exporter?
avec les données désirées dans ton fichier de récapitulation?
Le filtre élaboré est bien le plus simple
enfin, si tu veux vraiment utiliser ton code, (pas la peine d'utiliser un semi-remorque pour écraser une mouche ;))il faut quelques modifications.
tout d'abord, pourquoi chercher le nombre de fichier appelé RECAP.xls, il ne peut y avoir qu'un, donc X aura toujours la valeur 1, ce qui fait que ta boucle ne fera qu'un tour, et n'exportera qu'une ligne.
Il faut donc calculer le nombre de cellules remplies dans ton fichier initial
ensuite, tu insères des formules, pourquoi pas les valeurs directement?
Enfin, tes formules insérées comportent une erreur :
.Cells(Y, 1).Formula = "='C:\[" & Tableau(X) & "]Feuille1" & "'!" & "A" & N
Pas besoin de donner la racine, tu l'as déjà dans Direction, tu peux supprimer C:\.
 

Bradvid

XLDnaute Occasionnel
Re : Génération auto de tableau

Re-,
après essai de ton code, il me semble que ce que je t'ai proposé est exactement la même chose, en bien plus simple, et fiable
tu n'as que un fichier à exporter?
avec les données désirées dans ton fichier de récapitulation?
Le filtre élaboré est bien le plus simple
enfin, si tu veux vraiment utiliser ton code, (pas la peine d'utiliser un semi-remorque pour écraser une mouche ;))il faut quelques modifications.
tout d'abord, pourquoi chercher le nombre de fichier appelé RECAP.xls, il ne peut y avoir qu'un, donc X aura toujours la valeur 1, ce qui fait que ta boucle ne fera qu'un tour, et n'exportera qu'une ligne.
Il faut donc calculer le nombre de cellules remplies dans ton fichier initial
ensuite, tu insères des formules, pourquoi pas les valeurs directement?
Enfin, tes formules insérées comportent une erreur :
.Cells(Y, 1).Formula = "='C:\[" & Tableau(X) & "]Feuille1" & "'!" & "A" & N
Pas besoin de donner la racine, tu l'as déjà dans Direction, tu peux supprimer C:\.

Merci pour ton retour,

Je n'ai effectivement pas besoin de chercher le nombre de fichier puisqu'il n'y en a qu'un... (cela correpond à une ancienne macro). J'insère des formules parceque je veux garder les liens afin qu'une mise à jour puisse s'effectuer avec les liaisons. Comment calcul t-on le nombre de cellules remplies dans le fichier initial?

Je voudrais bien utiliser ta solution qui je dois l'avouer est plus simple mais il faudrait que je puisse garder les liens et que le bouton se trouve sur le fichier ou l'export se fera...

Merci encore pour ta patience.
 

Cousinhub

XLDnaute Barbatruc
Re : Génération auto de tableau

Re-,
Pour le moment, les deux fichiers modifiés

je cite :
Comment calcul t-on le nombre de cellules remplies dans le fichier initial?

sachant que ta première ligne du tableau est 8, le nombre de lignes de ton tableau est donc :

With Workbooks("tablo1.xls")
nblig = .Sheets("Feuil1").[a65000].End(xlUp).Row - 8
End With
X = 1
For Z = 1 To nblig
Bon courage
 

Pièces jointes

  • Tableau auto2.zip
    16.6 KB · Affichages: 37

Bradvid

XLDnaute Occasionnel
Re : Génération auto de tableau

Re,

Je vais utiliser ta méthode finalement mais il faudrait que je garde les liens avec le fichier source. C Possible?
Autre questions, c possible de laisser le fichier source fermé (ou de le fermer à la fin de la macro?).
 

Cousinhub

XLDnaute Barbatruc
Re : Génération auto de tableau

Re-,
si tu veux absolument garder les liens, ce n'est donc pas la solution souhaitée, le filtre élaboré n'exportant que les valeurs, on ne peut pas écrire de formules avec cette méthode.
Maintenant, les formules, tu peux les tapées à la main, et une fois toutes les formules entrées, tu auras ton tableau à jour, pourvu que ton fichier source soit ouvert, il n'y a pas besoin de macro pour cela.
Je ne comprends pas bien ton besoin.

Pour ce qui est de fermer le fichier source, rajoute cette ligne :

ActiveWorkbook.Close False

avant celle-ci :

Windows(CeFichier).Activate
 

Discussions similaires

Statistiques des forums

Discussions
312 217
Messages
2 086 352
Membres
103 195
dernier inscrit
martel.jg