Une binouze sur la Cote d'Azur pour...

  • Initiateur de la discussion Initiateur de la discussion Babou
  • 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 !

B

Babou

Guest
Bonjour tout le monde,
Une binouze pour vous si vous passez par la Cote d'Azur pour celle ou celui qui me sortira ce bamboou du pied 😱)

J'ai une question pour vous, les pros du VB et autres VBAs 😱)

Mon probleme est le suivant :

J'ai un fichier excel ou j'ai des donnees sous forme de tableaux pour des mois definis. Chaque mois, lorsque je fais la mise a jour des donnees, je dois figer les donnees du mois precedent de maniere a ce que les calculs ne se fassent que pour le mois courant, et non pas aussi pour le mois precedent.
Par exemple, en Novembre, je dois figer (copy-paste as values) les donnees du mois d'Octobre. Et cela pour chaque worksheet.
Je voulais savoir s'il y a un moyen de :

a partir d'une liste de worksheets donnee (soit construite manuellement, soit dynamiquement en recherchant les worksheets ou j'ai des dates sous la meme forme que celle donnee dans mon exemple) et en fonction d'une date que j'aurai renseignee quelque part (comme dans 'Dates entries' dans mon exemple) ou je mettrais 10/30/2002, de parcourir tous les ws de la liste ci-dessus et figer les valeurs de la ligne jusqu'à la derniere cellule non vide de la ligne en question.

Je precise que je n'ai pas forcement le meme nombre de colonnes dans chaque worksheet comme montre dans mon exemple !

La difficulte risque aussi de resider dans le fait que je peux avoir plusieurs tableaux dans une meme feuille. Si cela pose souci, je peux structurer un peu mieux mon fichier de maniere a n'avoir qu'un tabelau par feuille.

C’est dur a expliquer. C’est une tache que j’effectue actuellement manuellement et qui est tres fastidieuse car j’ai une cinquantaine de worksheets, avec au moins un tableau par ws (je peux en avoir plusieurs !).

Merci de votre aide.
Babou.
 
Bonjour Babou

Il faut pas bégayer comme çà dans un Forum !

=> <http://www.excel-downloads.com/html/French/forum/messages/1_10934_10934.htm>

Si tu n'as pas eu de réponse là, ce n'est pas en te répétant ici que celà "activera" les choses... Mis à part le risque d'activer un énervement de ceux qui pourraient avoir l'envie de t'aider à résoudre ton problème.

Sur ce, comme bcp, je suppose que tu n'es pas habitué aux forums, donc c'est une faute que bcp de Newbies font. Mais imagine un peu que tout le monde fasse idem... Plus personne n'aurait de réponse!

Bon sur ce, on verra ce qu'on peut faire, mais pas maintenant pour moi, je file au bureau.

Pour la binouze, suis déjà sur la cote d'usure !

Bonne Journée
@+Thierry
 
Excusez moi... Je n'ai pas bien l'habitude des forums et je comprends que si tout le monde begayait... On se comprendrait difficilement 😱)
Excusez moi encore...
Quant a la binouze, je laisse votre imagination courir 😱) Mais ca use 😱))
 
bonjour

la macro ci-dessous boucle sur les feuilles Graph ex1 & Graph ex2 puis sur chacune des cellules de leur première colonne contenant des constantes pour trouver les cellules contenant des dates, et le cas échéant vérifier que le mois de la date donnée est le 10ième mois (octobre).
Si le contrôle est positif les formules sont transformées en valeur pour toutes la ligne concernée, les formules sont définitivement perdues.

Sub test()
For Each sh In Sheets(Array("Graph ex1", "Graph ex2"))
'Debug.Print sh.Name
For Each cl In sh.Columns(1).SpecialCells(xlCellTypeConstants)
If IsDate(cl) Then
If Month(cl.Value) = 10 Then
Debug.Print sh.Name & " : " & cl.Address
sh.Rows(cl.Row).Formula = sh.Rows(cl.Row).Value
End If
End If
Next cl
Next sh
End Sub

bye
stephane
 
Bonjour A_Binouze_Drinker_Among_Others,
Super ! Ca marche bien...
Serait-il possible de construire la liste des worksheets de maniere dynamique ? A savoir, on regarde dans toutes les feuilles s'il y a un tableau avec des dates et si oui, on rentre dans la boucle, si non, on ne fait rien et on passe a la feuille suivante.
Un autre point : en testant, je pense que tu fais un "paste as values" sur toute la ligne. Or, je peux avoir d'autres formules sur la meme ligne, mais separees d'une cellule par rapport aux donnees de mon tableau (comme precise dans mon explication tout en haut de ce thread). Exemple : pour la ligne 1, mon tableau va jusqu'en A10, puis A11 est "blank", puis A12 et suivantes contiennent des formules que je ne veux pas toucher. En l'occurrence, il ne faudrait ne "paster as values" que les cellules jusque A10. Est-ce que cela est complique a implementer ?
Merci bcp pour ton up !
Ma propal tient toujours et est meme doublee 😱)
Quant au reste, je ne discute pas 😱))
Binouzement votre,
Babou.
 
Re Babou,

Vite fait, sans tester...

Pour la partie 1) Si tu vire l'array de STéphane, çà devrait boucler sur toutes les feuilles...
For Each sh In Sheets
For Each cl In sh.Columns...etc

Pour la partie 2) C'est exactement comme je t'avais prédis, avec les Rows pas de problème... mais sinon... Faut faire du casse tête... avec du "xlToRight" (une piste... encore heureux que tu as une colonne vide !!)

Mais là désolé je n'ai pas le temps de me pencher là dessus (dois finir une appli pour le boulot)

Bon Aprèm (et bonne bilouse)
@+Thierry_beers_drinker
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
708
Réponses
4
Affichages
410
  • Question Question
Microsoft 365 tri mobile
Réponses
5
Affichages
512
Réponses
10
Affichages
369
Réponses
1
Affichages
321
Réponses
3
Affichages
281
Réponses
2
Affichages
364
Réponses
4
Affichages
411
Retour