Macro Probleme Rafraichissement TCD

  • Initiateur de la discussion Initiateur de la discussion sim
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sim

XLDnaute Occasionnel
Bonjour a toutes et a tous!!!

Voici le code d'une macro active par un bouton

Apres test, cette partie du test ne fonctionne pas

Code:
Workbooks("Pb_refresh_tcd.xls").RefreshAll

Donc le processus
Dans Home!
Un premier bouton qui vide GMRB_Raw_Data! et suprime FX!
Un deuxieme bouton qui Cree FX! avec les nouvelle donnee de GMRB_Raw_Data

Dans Current_market!
4 TCD qui devrai se mettre a jour apres cick sur le bouton qui cree FX, comme l'indiaue le code ci dessous

Du coup voici le code complet et un fichier exemple pour donner un peu plus de consistence a ma demande.

Code:
Private Sub acceuil_Click()
  Application.ScreenUpdating = False
  Sheets("GMRB_Raw_Data").Copy Before:=Sheets(3)
  On Error Resume Next
 ActiveSheet.Name = "FX"
 ActiveWorkbook.Names.Add Name:="MaListe", RefersToR1C1:= _
    "=OFFSET(FX!R1C1,0,0,COUNTA(FX!C1),14)"
  If Err.Number <> 0 Then
    Application.DisplayAlerts = 0
    ActiveSheet.Delete
    Application.DisplayAlerts = 1
    Sheets("FX").Activate
    Exit Sub
  End If
  On Error GoTo 0
  supp
  Workbooks("Pb_refresh_tcd.xls").RefreshAll
  Sheets("Current_market").Range("A6") = Sheets("GMRB_Raw_Data").Range("A2")
End Sub

J'espere que quelqu'un pourras m'aider parce que si cette fonction mise a jour des tcd, c'est une grosse partie de l'application qui tombe a l'eau!!! 😱

Merci d'avance!!😀

Cordialement

Sim
 

Pièces jointes

Re : Macro Probleme Rafraichissement TCD

Re,

bah.. tu le mets en dernier, avant le "end sub" :

Code:
Sheets("NomFeuille").Activate
    Range("A1").Select

la cellue A1 de la feuille en question du classeur actif sera sélectionnée.... si pas classeur actif, tu précise son nom avant....
 
Re : Macro Probleme Rafraichissement TCD

Re,

C'est dingue, ca ne veux pas fonctionner!!

Le debogueur me surligne en jaune la ligne de code suivante et pour les deux bouton!

Code:
Range("A1").Select


Je te remet le code des deux macro en entier on sait jamais tu verras peut etre quelque que surement je ne vois pas.

Code:
Private Sub acceuil2_Click()
    Application.DisplayAlerts = False
    For i = 1 To Sheets.Count
        If Sheets(i).Name = "FX" Then GoTo FeuilleFXPresente
    Next
    MsgBox "FX does not exist, please follow the procedure step by step for updating", _
       vbCritical + vbOKOnly, "WARNING !"
    Exit Sub

FeuilleFXPresente:
    Sheets("FX").Delete
    Sheets("GMRB_Raw_Data").Select
    ActiveWorkbook.Worksheets("GMRB_Raw_Data").Cells.ClearContents
    Sheets("GMRB_Raw_Data").Activate
        Range("A1").Select
End Sub
Private Sub acceuil_Click()
  Application.ScreenUpdating = False
  Sheets("GMRB_Raw_Data").Copy Before:=Sheets("Markets_PI")
  On Error Resume Next
 ActiveSheet.Name = "FX"
 ActiveWorkbook.Names.Add Name:="basetcdauto", RefersToR1C1:= _
    "=OFFSET(FX!R1C1,0,0,COUNTA(FX!C1),14)"
  If Err.Number <> 0 Then
    Application.DisplayAlerts = 0
    ActiveSheet.Delete
    Application.DisplayAlerts = 1
    Sheets("FX").Activate
    Exit Sub
  End If
  On Error GoTo 0
  supp
  Sheets("Current_market").Range("A6") = Sheets("GMRB_Raw_Data").Range("A2")
  Dim pt As PivotTable
    For Each pt In Sheets("Current_market").PivotTables
        pt.RefreshTable
    Next pt
    Sheets("Current_market").Activate
        Range("A1").Select
End Sub

C'est fou, car quand j'ouvre le document, il s'ouvre biens sur l'onglet Home! et la cellule A1......

Detail debil, je sais....

Merci de m'accompagner

Sim
 
Re : Macro Probleme Rafraichissement TCD

Re,

tu as mis ce code dans un module de feuille, il veux donc selectionner la cellule A1 de la feuille dans lequel se trouve ce code... mais comme ctte même feuille n'est pas active bogue... modifie comme suit :
Code:
Sheets("Current_market").Activate
Sheets("Current_market").Range("A1").Select
 
Re : Macro Probleme Rafraichissement TCD

Re,

NIKEL!!!!!! Ca fonctionne..

Juste pour que tu comprenne mon erreur, (c'est toujours bon a savoir quand on est aideur/prof)

Je croyais que meme si je mettais ce code dans le code de la feuille home, le code etait ratache a la Sub des Bouton....

Merci, beaucoup en tout cas....la mise a jour de mon rapport est terminee!!!!!!

Maintenant, je dois m'ataquer a la mise en page, notemment avec l'automatisation du calcul de la taille de mes TCD, et lafixation automaitque du saut de page......alors si je trouve pas la solution dans les post du forum, ou ailleur, on se verra surement dans mon prochain post, 🙂

Bon aprem'

Cordialement

Sim
 
Re : Macro Probleme Rafraichissement TCD

Re,

Je croyais que meme si je mettais ce code dans le code de la feuille home, le code etait ratache a la Sub des Bouton....

lorsque tu places un code dans un module de feuille, toutes les instructions vont s'appliquer à cette même feuille, sauf à désigner explicitement une autre feuille.....
 
Re : Macro Probleme Rafraichissement TCD

D'accord,

Donc si au lieu d'avoir programmer dans click droit onglet home voir code, j'avais programer dans click droit bouton voir code cela aurais marche...non?

Sim

Reflexion post-post! lol

Ca n'aurait pas marche non plus car cela ouvre egalement le module de la feuille.....

Pour que mon code telque je l'avais ecrit marche, il aurait fallu que je mette ce code dans un module a part...comme pour ma macro supp...

Si j'ai bien tout compris..

Sim
 
Dernière édition:
Re : Macro Probleme Rafraichissement TCD

Re,
Donc si au lieu d'avoir programmer dans click droit onglet home voir code, j'avais programer dans click droit bouton voir code cela aurais marche...non?
A mon avis te renverra vers le même module...

le mieux eut été de placer le code dans un module standard, dans l'éditeur vba => barre de menu => insertion => module, et dans la procédure click du bouton tu appelais ta macro....
 
Re : Macro Probleme Rafraichissement TCD

Crois tu que je devrais faire ce changement?

Et au final placer dans le module de la feuille home un macro qui appel les module

du genre:

Code:
Call ModuleX."non de la macro correspondant au bouton"
 
Re : Macro Probleme Rafraichissement TCD

Lol, je comprend ton anxiete

"et si il faisait tout plenter!!!!", tes conseils sont toujours bon et appropries a ma situation, je vais donc aussi respecter celui ci a la lettre.....

Merci beaucoup car oui tout fonctionne comme je le veux.
 
Re : Macro Probleme Rafraichissement TCD

Bonjour à tous,

Et au final placer dans le module de la feuille home un macro qui appel les module
Tu te méprends sur le termes... Et sur l'utilisation du placement des codes...

Pour faire très simple :
Tu utilises un module de feuille ou du ThisWorkBook pour une macro événementielle (qui se déclenche sur une action)
Tu utilises un module standard pour le reste (quitte à l'appeler sur un module de feuille)

Je rejoins l'ami Pierrot :
touche plus à rien si cela fonctionne comme tu le veux....
A+ à tous
 
Re : Macro Probleme Rafraichissement TCD

Ok JCGL, Pierrot,

Imaginons si j'avais voulu faire ca dans les regles de l'art

J'aurai donc fait par exemple:

Dans le module de la feuille Home:

Private Sub acceuil_click2()
Call Module2. Bouton1 'Supposant que j'ai renomme la Macro Bouton1
End Sub

Private Sub acceuil_click()
Call Module3.Bouton2
End Sub

Et dans l'editeur VBA

Module2

Code:
Private Sub Bouton1()
    Application.DisplayAlerts = False
    For i = 1 To Sheets.Count
        If Sheets(i).Name = "FX" Then GoTo FeuilleFXPresente
    Next
    MsgBox "FX does not exist, please follow the procedure step by step for updating", _
       vbCritical + vbOKOnly, "WARNING !"
    Exit Sub

FeuilleFXPresente:
    Sheets("FX").Delete
    Sheets("GMRB_Raw_Data").Select
    ActiveWorkbook.Worksheets("GMRB_Raw_Data").Cells.ClearContents
    Sheets("GMRB_Raw_Data").Activate
    Sheets("GMRB_Raw_Data").Range("A1").Select
End Sub

Module3

Code:
Private Sub Bouton2()
  Application.ScreenUpdating = False
  Sheets("GMRB_Raw_Data").Copy Before:=Sheets("Markets_PI")
  On Error Resume Next
 ActiveSheet.Name = "FX"
 ActiveWorkbook.Names.Add Name:="basetcdauto", RefersToR1C1:= _
    "=OFFSET(FX!R1C1,0,0,COUNTA(FX!C1),14)"
  If Err.Number <> 0 Then
    Application.DisplayAlerts = 0
    ActiveSheet.Delete
    Application.DisplayAlerts = 1
    Sheets("FX").Activate
    Exit Sub
  End If
  On Error GoTo 0
  supp
  Sheets("Current_market").Range("A6") = Sheets("GMRB_Raw_Data").Range("A2")
  Dim pt As PivotTable
    For Each pt In Sheets("Current_market").PivotTables
        pt.RefreshTable
    Next pt
    Sheets("Current_market").Activate
    Sheets("Current_market").Range("A1").Select
End Sub


C'est bien cela que ca signifiais????
(ca pourra toujours benefique au personnes qui viendront sur ce fil plus tard)

Cordialement.

Sim
 
Dernière édition:
Re : Macro Probleme Rafraichissement TCD

Re
Re Jean-Claude🙂,

oui mais.... en ayant bien pris soin d'enlever le "private" à la sub "Bouton1"
Code:
Sub Bouton1()
et tu aurais pu l'appeler ainsi :
Code:
Private Sub acceuil_click()
Bouton1 'Supposant que j'ai renomme la Macro Bouton1
End Sub

bouton1 n'étant pas déjà un nom d'objet.....
 
Re : Macro Probleme Rafraichissement TCD

OK, genial,

J'en aurai appris des choses grace a vous, j'espere que c'est pas fini!!! 😀

Comme entrainement, je vais une copie de ;on vrai fichier et essayer de realiser ce dont on vient de parler. Juste pour le Fun!! 😀

Pierrot93, JCGL, est ce que ca vous embeterai d'aller voir le post suivant, JCGL tu avais commencer a m'aider mais on a pas vraiemnt fini....comme maintenant vous connaissez bien mon cas ( desespere? lol!) peut etre sauras tu m'aiguiller vers la bonne solution:

https://www.excel-downloads.com/threads/macro-calcul-taille-tcd-mise-en-forme.160139/

Cordialement,

Merci a vous deux! 🙂

Sim
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
21
Affichages
2 K
Retour