code dans workbook ou dans un module pour 45 feuilles d'un classeur excel 2007

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

nasser

XLDnaute Nouveau
Bonjour
Aidez-moi à appliquer aux 45 premières feuilles d’un classeur excel 2007, le code suivant qui marche bien pour une feuille.
Merci


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Date du jour'
Range("I1").Value = "Date :"
Range("J1").Value = Format(Date, "dddd dd mmmm yyyy")


Range("A1") = "SITUATION D'UNE LIGNE BUDGETAIRE "
Range("A3") = "Ministère :"
Range("a4") = "Imputation :"
Range("a5") = "Crédit annuel :"
Range("A6") = "Taux :"
Range("a7") = "Crédit autorisé :"
Range("K12") = "Cumul Avances :"
Range("M12") = "Cumul Reliquats :"
Range("D9") = "Nbre O M :"
Range("A8") = "Taux necessaire :"
Range("i9") = "GRANDE SITUATION"
Range("k9") = "PETITE SITUATION"
Range("m9") = "RELIQUAT "
Range("i10") = "Cons. Ant. "
Range("i11") = "Disponible "
Range("k10") = "Dép.ant./Solde "
Range("k11") = "Disponible "
Range("A13") = "Date "
Range("b13") = "Bénéficiaire "
Range("c13") = "Destination "
Range("d13") = "Groupe "
Range("e13") = "N° O M "
Range("i13") = "Durée "
Range("j13") = "Montant "
Range("k13") = "Durée "
Range("l13") = "Montant "
Range("m13") = "Durée "
Range("n13") = "Montant "
Range("o13") = "Observation"
Range("f13") = "Décision "
Range("g13") = "Zone "
Range("h13") = "Taux "
Range("A13:R13").Font.Bold = True
Range("I9:M9").Font.Bold = True


Range("L12").Formula = "=sum(L14:L100)"
Range("N12").Formula = "=sum(N14:N100)"
Range("J10").Formula = "=sum(j14:j100)"
Range("J11").Formula = "=c7-j10"
'dépenses antérieures'
Range("L10").Formula = "=sum(L14:L100)+sum(N14:N100)"
'Petite situation disponible'
Range("L11").Formula = "=c7-(sum(L12+N12))"

'cumul avance'
Range("L12").Formula = "=sum(L14:L100)"
'cumul reliquat'
Range("N12").Formula = "=sum(N14:N100)"
'Nombre d'O M'
Range("E9").FormulaLocal = "=NBVAL(E14:E100)"
'Ministère en MAJUSCULES'
Range("B3") = UCase(Range("B3"))
'Plage des Bénéficiaires et Destination en MAJUSCULES'
Dim cell As Range
Dim Maplage As Range
Set Maplage = Range("B14:B99,C14:C99")
For Each cell In Maplage
cell.Value = UCase(cell.Value)
Next cell



'formule C=A*B
Range("J14:J99").FormulaR1C1 = "=RC[-2]*RC[-1]"
Range("L14:L99").FormulaR1C1 = "=RC[-1]*RC[-4]"
Range("N14:N99").FormulaR1C1 = "=RC[-1]*RC[-6]"

'credit autorisé'
Range("C7") = Range("C5") * Range("C6")
'taux necessaire'
Range("b8") = "Consommat° antérieure/Crédit autorisé"

If Range("B" & Target.Row).Value <> 0 Then
Lig = Target.Row

' Inscrit la date
Range("A" & Lig).Value = Now()
' Réactive les évènements dans le classeur
Application.EnableEvents = True


End If



End Sub
 
Re : code dans workbook ou dans un module pour 45 feuilles d'un classeur excel 2007

Bonjour nasser


Ça fait plaisir de voir que tu as pris le temps d'essayer la proposition de mon précédent message.
Tu as pu voir ainsi que le temps d’exécution est très rapide (même avec 45 feuilles)
 
Re : code dans workbook ou dans un module pour 45 feuilles d'un classeur excel 2007

Bjr, en fait je souhaite que tu me reprenne en application de ton exemple . je nè pas vraiment réussi. la première feuille peut servir de modèle pour les 45 feuilles. a toute à l heure. je serai content de voir ton travail sur la base de mon fichier en tenant compte de mes codes dans le module et dans la feuille.
Merci.



QUOTE=Staple1600;1180819]Bonjour nasser


Ça fait plaisir de voir que tu as pris le temps d'essayer la proposition de mon précédent message.
Tu as pu voir ainsi que le temps d’exécution est très rapide (même avec 45 feuilles)[/QUOTE]
 
Re : code dans workbook ou dans un module pour 45 feuilles d'un classeur excel 2007

Bonjour

Tu as testé ou pas ma macro exemple?
Je pense que le fonctionnement de la macro a est trés facile à comprendre
et comme je te le disais
(c'est cette macro qu'il te faudra ensuite adapter à ta problématique)

Il te suffit de créer une feuille MODELE, de déterminer les adresses des plages de cellules à recopier
et d’utiliser plusieurs fois cette ligne (en changeant à chaque les plages de cellules à recopier)
Worksheets(arrWSN).FillAcrossSheets Worksheets("MODELE").Range("A1:B4") ' ici adapter l'adresse de la plage de cellules

Je te laisse essayer de le faire toi-même.

EDITION: En fait, une seule ligne suffit (je viens de tester sur ton fichier exemple)
Worksheets(arrWSN).FillAcrossSheets Worksheets(1).Range("A1:O400") ' ici adapter l'adresse de la plage de cellules
 
Dernière édition:
- 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
Retour