VBA - Créer un bouton pour rafraîchir les calculs

Résolu/Fermé
Enaxor18 Messages postés 23 Date d'inscription jeudi 8 octobre 2015 Statut Membre Dernière intervention 4 octobre 2018 - 12 oct. 2015 à 10:30
Enaxor18 Messages postés 23 Date d'inscription jeudi 8 octobre 2015 Statut Membre Dernière intervention 4 octobre 2018 - 13 oct. 2015 à 17:31
Hello tout le monde !

Je cherche à créer un bouton sur une feuille excel qui actualisera les calculs d'un groupe de cellules.

J'ai essayé le code suivant, mais certainement un peu bancal :

Private Sub Worksheet_Activate()
ThisWorkbook.RefreshAll
End Sub

En sachant, que je veux que ça n'actualise que les cellules B33:B40

Auriez-vous une idée ? :)

PS : je ne maîtrise pas vraiment le VBA... ^^

Merci par avance pour votre aide !!

Enaxor18
A voir également:

6 réponses

Mike-31 Messages postés 18352 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 décembre 2024 5 110
Modifié par Mike-31 le 13/10/2015 à 15:07
Re,

j'ai supprimé un bouton et piloté l'ensemble avec un seul, j'ai rajouté une feuille qui doit impérativement se trouver avant la feuille Résumé dans la quelle j'ai copié les données de Septembre 2015, si tu clic sur le bouton tu verras que les données s'actualisent et si tu contrôles manuellement tu verras que les résultats correspondent.
En ce qui concerne les lignes dans l'ancien code précédées d'apostrophes, je t'ai bien dit que j'avais écrit plusieurs codes pour tester dont un avec Do While ce qui permet de voir le travail du code

https://www.cjoint.com/c/EJnnaqeHfLj
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1
Enaxor18 Messages postés 23 Date d'inscription jeudi 8 octobre 2015 Statut Membre Dernière intervention 4 octobre 2018
13 oct. 2015 à 16:43
Re,

Ca marche !!!! Merci beaucoup pour ton aide ! ;)
  • saute au plafond* ^^


Enaxor18
0
Mike-31 Messages postés 18352 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 décembre 2024 5 110
12 oct. 2015 à 10:37
Bonjour,

il faudrait voir ce qu'il y a dans ces cellules B33:B40, si tu as des formules il faudra tout passer en VBA
le mieux serait d'avoir un bout de ton classeur anonymisé que tu peux joindre à partir de ce lien
https://www.cjoint.com/
0
Enaxor18 Messages postés 23 Date d'inscription jeudi 8 octobre 2015 Statut Membre Dernière intervention 4 octobre 2018
12 oct. 2015 à 10:50
Bonjour Mike-31,

Merci pour ta réponse ! Pour répondre à ta question, dans b33:b40, j'ai une macro qui fait la moyenne des premières feuilles selon un critère (A, B, C, D, E, F, G ou H).

Voici mon fichier :
https://www.cjoint.com/c/EJmiWBxzfme
0
Mike-31 Messages postés 18352 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 décembre 2024 5 110
12 oct. 2015 à 22:09
Re,

je regarde ton fichier, mais rien ne correspond à tes explications, je ne vois nulle part des données en b33:b40 mais seulement B4:B10 qui font bien des calculs avec une fonction personnalisée "moyfeuille"

d'après ce que je comprends, cette fonction personnalisée rapatrie bien les données des feuilles précédentes et tu voudrais remplacer cette fonction automatique par un rapatriement des données uniquement lorsque tu cliqueras sur le bouton, c'est bien cela !
0
Enaxor18 Messages postés 23 Date d'inscription jeudi 8 octobre 2015 Statut Membre Dernière intervention 4 octobre 2018
12 oct. 2015 à 22:57
Re,

Oui désolé en anonymisant mon fichier j'ai supprimé les premières lignes...

Et oui, c'est bien cela, je souhaite un bouton qui rapatrie et actualise les calculs notamment quand je rajoute de nouveaux onglets avant le dernier :)

--
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18352 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 décembre 2024 5 110
13 oct. 2015 à 10:51
Re,

excuse mes interventions par intermittence dues à des coupures de connexions causées par des travaux.

regarde ton fichier voir si c'est que tu cherches, j'ai écrit plusieurs codes pour les voir fonctionner, mais on les simplifiera et on les accélérera si c'est ce que tu cherches
pourquoi mettre deux boutons et ne pas actualiser les colonnes B et I avec un seul code et bouton

https://www.cjoint.com/c/EJniWYDsSlj
0
Enaxor18 Messages postés 23 Date d'inscription jeudi 8 octobre 2015 Statut Membre Dernière intervention 4 octobre 2018
Modifié par Enaxor18 le 13/10/2015 à 14:44
Re,

Pas de problème, merci beaucoup pour ton aide !
Oui c'est vrai qu'avec un seul bouton c'est plus simple ;)

Par contre quand je teste les macros en ajoutant un nouvel onglet (comme Octobre 2015), et que je clique sur les boutons, les boutons n'ont pas l'air de fonctionner. Ils se sélectionnent juste, comme par exemple pour changer leur taille, modifier le texte à l'intérieur.

Je ne sais pas si c'est normal... En sachant que j'ai bien activer l'option "Développeur".

As-tu une idée d'où vient le problème ?

En regardant le code de plus près, ça semble convenir (je pense, vu que je ne maîtrise pas très bien le VBA). Juste pour précision, le début de la première commande a deux apostrophes en trop sur les lignes de Range et Do While :

Private Sub CommandButton1_Click()
' Boucle sur les cellules colonne A jusqu'à cellule vide
'Range("A4").Select
'Do While ActiveCell <> ""

Je te remercie encore pour ton aide très précieuse !!! :D

Enaxor18
0
Mike-31 Messages postés 18352 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 décembre 2024 5 110
13 oct. 2015 à 16:51
Re,

par contre tes fonctions personnalisés dans les modules sont devenues inutiles, supprime les 3 modules pour éviter qu'ils n'entrent en conflit
Mon code est directement dans les propriétés du bouton, pour y accéder clic droit sur l'onglet de ta feuille Résumé/Visualiser le code
0
Enaxor18 Messages postés 23 Date d'inscription jeudi 8 octobre 2015 Statut Membre Dernière intervention 4 octobre 2018
13 oct. 2015 à 17:31
Re,

Ok je supprime somfeuille et moyfeuille ;)

Encore merci !
0