Recopie ligne formules par vba et optimisation

KIM

XLDnaute Accro
Bonjour le forum.
J'utilise souvent la technique ci-dessous:
Je definis mes formules sur une ligne
et je la recopie par macro dans la plage souhaitée.
Ex:
mes formules en G2:M2 ,
la macro 'Copie_ligneformules_dansplage'
recopie et calcule chaque formule dans la plage G5:M208

Mes données reelles font presque 60 000 lignes et 50 colonnes. et le temps d'exécution est tres tres long.
Je souhaite optimiser ce code et le rendre plus rapide en utilisant les tableaux. Cela me fera gagner beaucoup de temps.
Merci de votre aide
Amicalement
KIM

Sub Copie_ligneformules_dansplage()
Dim w_nfile As String
Dim MyPath As String
Dim Ws As Worksheet
Dim n_line As Long


Set Ws = Worksheets('DATA2')

With Application
.ScreenUpdating = False
' .ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With

w_nfile = ActiveWorkbook.Name
MyPath = ActiveWorkbook.Path
Ws.Activate
Ws.Select
If Ws.AutoFilterMode Then
Selection.AutoFilter
End If

Windows(w_nfile).Activate
ActiveSheet.Calculate
n_line = Ws.Range('E2')

Range('G5:M' & n_line).Select
Selection.ClearContents


Range('G2:M2').Copy Destination:=Range('G5:G' & n_line)
ActiveSheet.Calculate
With Selection
.Copy
.Calculate
' .PasteSpecial Paste:=xlFormats
.PasteSpecial Paste:=xlValues
End With

With Application
.CutCopyMode = False
.DisplayAlerts = False
.ScreenUpdating = True
' .ScreenUpdating = False
.Calculation = xlCalculationManual
End With


MsgBox 'c'est fini'
End Sub [file name=prjKIMv1.zip size=35953]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/prjKIMv1.zip[/file]
 

Pièces jointes

  • prjKIMv1.zip
    35.1 KB · Affichages: 104

KIM

XLDnaute Accro
Re,
Fichier joint comme exemple pour 2 cas de recopie de plages
KIM [file name=copyplagesKIM_1.zip size=10884]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/copyplagesKIM_1.zip[/file]
 

Pièces jointes

  • copyplagesKIM_1.zip
    10.6 KB · Affichages: 89

ChTi160

XLDnaute Barbatruc
Salut KIM
bojour le fil
Bonjour le Forum

en pièce jointe un exemple de ce que j'ai cru comprendre adapté à la feuille CIBLE1 [file name=CopiedecopyplagesKIM_2.zip size=15544]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/CopiedecopyplagesKIM_2.zip[/file]

Message édité par: Chti160, à: 06/06/2006 16:49
 

Pièces jointes

  • CopiedecopyplagesKIM_2.zip
    15.2 KB · Affichages: 90

KIM

XLDnaute Accro
Salut Jeanmarie, bonjour Bebere, Pierrejean et le forum,
@Jeanmarie,
J'ai regardé ton fichier,
OK pour le principe
2 ameliorations si possible:
1- la recopie se fait avec le meme format des plages sources. J'ai vidé la feuille Cible1, il ne recopie que les valeurs sans les formats.
La presentation de la plage nommée est faite dans la feuille source et non la feuille cible.

2- la 2eme amelioration est la recopie de la feuille source dans une feuille cible d'un autre classeur cible. On verra cette possibilité apres avoir reglé les problemes des plages nommées.

Merci encore
KIM
 

pierrejean

XLDnaute Barbatruc
bonsoir KIM Jean Marie bebere le forum

ma version pour CIBLE1

je regarde ta version Jean Marie

Et KIM va tout essayer et prendre le meilleur dans chacune [file name=KIM1.zip size=16534]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/KIM1.zip[/file]
 

Pièces jointes

  • KIM1.zip
    16.1 KB · Affichages: 86
  • KIM1.zip
    16.1 KB · Affichages: 88
  • KIM1.zip
    16.1 KB · Affichages: 82

pierrejean

XLDnaute Barbatruc
re tous

fini pour aujourd'hui

une petite amelioration (pour eviter de dupliquer des tableaux)
j'ais egalement pris le parti de detailler le plus possible les fonctions [file name=KIM1_20060606204559.zip size=17454]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/KIM1_20060606204559.zip[/file]
 

Pièces jointes

  • KIM1_20060606204559.zip
    17 KB · Affichages: 89

ChTi160

XLDnaute Barbatruc
Arff
comme dirait mon collégue pierrejean
c'est la derniere pour aujourd'hui lol

une version avec les mises en forme

bonne nuit [file name=CopiedecopyplagesKIM_3.zip size=20074]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/CopiedecopyplagesKIM_3.zip[/file]
 

Pièces jointes

  • CopiedecopyplagesKIM_3.zip
    19.6 KB · Affichages: 87

KIM

XLDnaute Accro
Bonjour le Dream Team de KIM (selon JM),
Bonjour le forum,
Toute l'aide que vous m'avez apporté dans ce fil et dans d'autres dans l'amélioration et l'execution via des tableaux en memeoire, via des recopies de formules avec les explications necessaires, toutes ces briques ont ete intégrées dans la mise en place d'un tableau de bord avec succés. Quel temps gagné par rapport à ma programmation initiale. je passe d'une dizaine de minutes à une dizaine de secondes. Je vous en remercie ainsi que toutes et tous (avec mes excuses de ne pas les nommer) de ce forum.
@JeanMarie, merci, A intégrer la macro dans un bouton de l'USF de Pierrejean.
@Pierrejean,
J'intègre toutes les bonnes idées dans mes macros. C'est un mixte.
ton USF est tres pratique pour la selection des DEP et la creation de Cible1 et la sauvegarde.
1- Est-il possible d'intégrer (macro de JM) un bouton pour la creation de CIBLE1 avec l'ensemble des DEP?
2- les noms DEP1, DEP2 ne sont que des exemples mais reellement les noms sont différents (CSD54, LSM32, PPN25,etc...)
Est-il possible d'initialiser le USF par les noms de DEP qui se trouvent par exemple dans la feuille DATA1 col N9:N'derniere ligne non vide'?
A tester le cas 1 sur un fichier réél pour voir si la copie se fait seulement avec les valeurs sans les formules.

Vous n'en avez pas marre de m'aider?
Merci d'avance
Bien amicalement
KIM
 

pierrejean

XLDnaute Barbatruc
bonjour KIM Jean Marie bebere le forum

@ KIM
Non je n'en ais pas marre !!
en fait même je prends mon pied
decider de faire ça et arriver à faire ça me dope

@ Jean Marie
désolé de ne pas avoir integré ta macro
j'ais trouvé plus simple de continuer avec mes pitites macros

@tous
je regarde le point 2 mais ne serait pas tres productif aujourd'hui because petits-enfants [file name=KIM1_20060607085019.zip size=18627]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/KIM1_20060607085019.zip[/file]
 

Pièces jointes

  • KIM1_20060607085019.zip
    18.2 KB · Affichages: 83

Bebere

XLDnaute Barbatruc
bonjour Kim,Jean-marie,Pierre-Jean,le forum
dream team,je pensais la même chose que toi
pour le reste je me trouve un peu hors jeu
vu que JM etPJ sont supers actifs(peut être le duo de rêve)
tu n'as pas qcq chose à me mettre sous la dent
je suis les débats
à bientôt
 

ChTi160

XLDnaute Barbatruc
Salut KIM
bonjour pierrejean ,Bebere
le Forum
en pièce jointe j'ai utilisé le fichier de Pierre et j'y est inclu un bouton pour l'affichage du userform
j'ai ensuite fait en sorte qu'a son initialisation les données de la plage N9:Nx prennent place dans le combobox
pour le reste je n'ai pas trop compris mais je pense que ce soir (car il faut que j'aille au boulot) tu nous auras éclairé KIM
bonne journée [file name=KIM1_070606.zip size=18112]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/KIM1_070606.zip[/file]
 

Pièces jointes

  • KIM1_070606.zip
    17.7 KB · Affichages: 90

ChTi160

XLDnaute Barbatruc
Salut Bebere
moi je me suis absenté 2 jours et quand je suis rentré j'étais perdu Lol
il reste à KIM a nous mettre un exemple du fichier car il y a quelques explications que je ne comprends pas
@JeanMarie, merci, A intégrer la macro dans un bouton de l'USF de Pierrejean.
1- Est-il possible d'intégrer (macro de JM) un bouton pour la creation de CIBLE1 avec l'ensemble des DEP
donc si le patron passe par la
merci d'avance Lol
bonne journée
 

KIM

XLDnaute Accro
Re,
@Bebere,
Merci de ton encouragement,
2 cas m'ont été soulevé ce matin:
1- Dans la construction du tableau récapitulatif des données dans la feuille DATA2:
- création de la liste des projets (col G5:...)
- création da la liste des DEP (ligne I4:...)
- Mise en place des titres , recopie et execution des formules dans H5:derniere cellule de la zone calculée dynamiquement.
Est-il possible avec un menu et choix de creer dynamiquement (c-à-d les limites des lignes et colonnes ne soient pas figées mais définies selon les données traitées) à partir des colonnes A, B, D de la feuille DATA2 créer deux recapitulatifs dans 2 nouvelles feuilles dont le premier recap est le meme que celui déjà fait (col G = liste des projets, ligne I = liste des DEP) et le 2ieme recap intervertir les entêtes des lignes et colonnes (col G = liste des DEP et ligne I = liste des projets)avec le formatage des entetes et des titres.
Les formules sont toujours les memes car ils dependent de l'entete de chaque ligne et chaque colonne.
2- Dans le classeur final je créé plusieurs feuilles, comment les trier apr nom pour qu'elles apparaissent par ordre alphabetique?
Je connais les feuilles initiales de mon classeur qui doivent etre exclues du tri des feuilles créées par macro. Je vais faire une recherche sur le forum mais si tu as une idée, la bienvenue.
merci d'avance
KIM
 

pierrejean

XLDnaute Barbatruc
re tous

Point 2 pas trop complexe finalement !!

@ Jean Marie

des que possible je jete un oeil sur ton fichier [file name=KIM1_20060607101517.zip size=21547]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/KIM1_20060607101517.zip[/file]
 

Pièces jointes

  • KIM1_20060607101517.zip
    21 KB · Affichages: 85

KIM

XLDnaute Accro
Re,
Salut Jeanmarie,
@JeanMarie,
donc si le patron passe par la
C'était pour repondre à Pierrejean que ma solution serait un mixte de l'ensemble des solutions de ce fil

@Pierrejean, je viens de voir ton message
je vais regarder le fichier.

@Bebere,
Que je suis bête, Pour transposer ligne en col et col en ligne dans le tableau recapitulatif,
il suffit de modifier le remplissage de la col G et de la ligne I en dupliquant ta macro et modifer les references des données initiales.

Je teste et je reviens vers vous
merci
KIM
 

Discussions similaires

Réponses
7
Affichages
292