Automatisation d'un fichier Excel
kirile
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Kirile -
Kirile -
Bonjour à tous,
Help, je peine à trouver la solution
Je vous expose mon cas.
J'ai un fichier Excel composé de plusieurs feuilles.
Dans la première, se trouve une extraction avec des données SAP, nommée "Report"
Dans la deuxième, se trouve un tableau croisé dynamique, nommé "Accuracy" qui puise sa source sur « Report »
Au plus on avance dans l'année et au plus il y a de données SAP et donc au plus mon TCD s'allonge
Le TCD de la feuille « Report » s'étend sur la plage A:7 à F:5200.
En bordure du tableau croisé dynamique, j'ai de simples formules en colonne G et H que je souhaite automatiquement étendre jusqu'à la dernière ligne active de mon TCD, qui comme vous l'avez compris s'allonge de jour en jour.
La formule en G est « =SI(D7="";"";E7-D7) »
La formule en H est « =SI(C7="";"";SI(G7=0;"OK";"NOK"))»
Comment faire pour qu’en cliquant sur un bouton « refresh », le TCD s’actualise et les formules se copient et collent jusqu’à la dernière ligne du TCD
Merci à tous de votre support
Help, je peine à trouver la solution
Je vous expose mon cas.
J'ai un fichier Excel composé de plusieurs feuilles.
Dans la première, se trouve une extraction avec des données SAP, nommée "Report"
Dans la deuxième, se trouve un tableau croisé dynamique, nommé "Accuracy" qui puise sa source sur « Report »
Au plus on avance dans l'année et au plus il y a de données SAP et donc au plus mon TCD s'allonge
Le TCD de la feuille « Report » s'étend sur la plage A:7 à F:5200.
En bordure du tableau croisé dynamique, j'ai de simples formules en colonne G et H que je souhaite automatiquement étendre jusqu'à la dernière ligne active de mon TCD, qui comme vous l'avez compris s'allonge de jour en jour.
La formule en G est « =SI(D7="";"";E7-D7) »
La formule en H est « =SI(C7="";"";SI(G7=0;"OK";"NOK"))»
Comment faire pour qu’en cliquant sur un bouton « refresh », le TCD s’actualise et les formules se copient et collent jusqu’à la dernière ligne du TCD
Merci à tous de votre support
A voir également:
- Automatisation d'un fichier Excel
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
4 réponses
Bonsoir
Une simple remarque. Tu ne peux pas mettre des 2 formules à gauche de ton TCD ?
Il s'allongera autant qu'il veut sur la droite et tes formules seront toujours valables.
Sinon pour ce qui concerne un code VB/VBA s'il n'y a pas de données confidentielles dans ton fichier peux tu le mettre en ligne pour voir à quoi il ressemble afin d'adapter le meilleur code.
Travailler en "aveugle" n'est pas facile.
Une simple remarque. Tu ne peux pas mettre des 2 formules à gauche de ton TCD ?
Il s'allongera autant qu'il veut sur la droite et tes formules seront toujours valables.
Sinon pour ce qui concerne un code VB/VBA s'il n'y a pas de données confidentielles dans ton fichier peux tu le mettre en ligne pour voir à quoi il ressemble afin d'adapter le meilleur code.
Travailler en "aveugle" n'est pas facile.
Bonjour,
Je ne parviens pas à mettre en ligne le fichier.
Je viens donc d'en faire une capture d'écran.
Mon TCD est donc sur l'onglet "Accuracy" et je souhaiterai que sur l'onglet "Report", après avoir importé les données SAP en fichier plat, l'utilisateur puisse, en cliquant sur un bouton "Mise à jour" :
- actualiser l'ensemble des TCD du fichier
- que les formules de la plage G:7084 et H:7084 se copient collent jusqu'à la dernière ligne active du fichier.
Le but est double pour moi, d'apprendre et de mettre à disposition un fichier un sexy
Merci ton aide

Je ne parviens pas à mettre en ligne le fichier.
Je viens donc d'en faire une capture d'écran.
Mon TCD est donc sur l'onglet "Accuracy" et je souhaiterai que sur l'onglet "Report", après avoir importé les données SAP en fichier plat, l'utilisateur puisse, en cliquant sur un bouton "Mise à jour" :
- actualiser l'ensemble des TCD du fichier
- que les formules de la plage G:7084 et H:7084 se copient collent jusqu'à la dernière ligne active du fichier.
Le but est double pour moi, d'apprendre et de mettre à disposition un fichier un sexy
Merci ton aide

Pour rafraichir tes TCD utilises le code
Entre parenthèses tu mets le nom de ton fichier.
Pour les reste il faut que je retrouve une ancienne macro qui le faisait.
Workbooks().refreshall
Entre parenthèses tu mets le nom de ton fichier.
Pour les reste il faut que je retrouve une ancienne macro qui le faisait.
J'ai retrouvé mon veux code, il n'est peut être pas parfait mais il fonctionne.
J'ai tenté de l'adapter à tes cellules mais il faudra peut être encore l'affiner.....
A rajouter après le code précédent pour rafraichir ton TCD
J'ai tenté de l'adapter à tes cellules mais il faudra peut être encore l'affiner.....
A rajouter après le code précédent pour rafraichir ton TCD
'Récupérer la dernière ligne du TCD dans la variable Lignelibre
Range("C7").Select
Selection.End(xlDown).Select
lignelibre = ActiveCell.Row
'Faire copier/coller des formules colonnes G et H
Range("G7:H7").Copy Worksheets("Feuil1").Range(Cells(8, 7), Cells(lignelibre, 8))
Application.CutCopyMode = False
Bonsoir JuanLuca38
un grand Merci, le fichier marche super bien.
Je viens de rencontrer un autre pb.
Mon fichier est copié/collé et renommé toutes les semaines avec le Numéro de la semaine courante.
Le fichier à toujours la même structure et les onglets ont toujours les mêmes noms
Le problème est que les TCD gardent leurs sources sur le fichier d'origine.
Peux tu me dire comment faire pour que la source pointe sur l'onglet du fichier actif.
Merci de ton aide et bonne soirée
un grand Merci, le fichier marche super bien.
Je viens de rencontrer un autre pb.
Mon fichier est copié/collé et renommé toutes les semaines avec le Numéro de la semaine courante.
Le fichier à toujours la même structure et les onglets ont toujours les mêmes noms
Le problème est que les TCD gardent leurs sources sur le fichier d'origine.
Peux tu me dire comment faire pour que la source pointe sur l'onglet du fichier actif.
Merci de ton aide et bonne soirée
Essaie ce code en adaptant la plage de ton TCD dans la partie soulignée:
Nom de l'onglet : Feuil1
Il faut bien rester en forme : R1C1 : (R)ow (ligne) 1 (C)olumn (colonne) 1
J'ai mis Ligne1 colonne 1 : Ligne 5 colonne 2 totalement au hasard a toi d'adapter.
Nom de l'onglet : Feuil1
Il faut bien rester en forme : R1C1 : (R)ow (ligne) 1 (C)olumn (colonne) 1
J'ai mis Ligne1 colonne 1 : Ligne 5 colonne 2 totalement au hasard a toi d'adapter.
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"Feuil1!R1C1:R5C2"
encore MErci,
tous mes tableaux changent bien de source et s'actualisent correctement.
Ma base de données source s'allonge tous les jours.
Dans ta formule ci-dessous le numéro de ligne 15400 est amené a varier
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"Report!R10C1:R15400C35"
J'ai essayé de créer une variable "LIGNELIBRE3" qui vient capturer la dernière active de ma base de données.
Sheets("Report").Select
Range("B10").Select
Selection.End(xlDown).Select
lignelibre3 = ActiveCell.Row
Mais alors, comment intégrer cette variable dans ton code:
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"Report!R10C1:R15400C35"
tous mes tableaux changent bien de source et s'actualisent correctement.
Ma base de données source s'allonge tous les jours.
Dans ta formule ci-dessous le numéro de ligne 15400 est amené a varier
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"Report!R10C1:R15400C35"
J'ai essayé de créer une variable "LIGNELIBRE3" qui vient capturer la dernière active de ma base de données.
Sheets("Report").Select
Range("B10").Select
Selection.End(xlDown).Select
lignelibre3 = ActiveCell.Row
Mais alors, comment intégrer cette variable dans ton code:
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"Report!R10C1:R15400C35"