Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 direct plus rapide

frederio

XLDnaute Impliqué
Bonsoir a tous

Tu vous connais comment faire code vba

Je voudrais copie toujours la plage G5 à H375 Sur la 1ère feuille "JUPILER PRO LEAGUE" Et Sur la 2ère feuille "%" coller I5 à J409

La macro s'exécute en 0,10 seconde et peut aller plus vite.

Si tu veux être d’accord avec moi ??? vous m’aidez a expliqué comme Excel Merci
 

Pièces jointes

  • Belgique.xlsm
    871.7 KB · Affichages: 7

job75

XLDnaute Barbatruc
Bonjour frederio,
Si tu veux être d’accord avec moi ???
Ben moi pas d'accord, c'est G4 et pas G5...

Et vous pourriez vous arranger pour qu'il y ait le même nombre de lignes vides entre les tableaux, non ?.

Mais bof lancez cette macro du Module1 :
VB:
Sub Transfert()
Dim source As Range, dest As Range, jour%
Set source = Sheets("JUPILER PRO LEAGUE").[G4:H12]
Set dest = Sheets("%").[I5:J13]
Application.ScreenUpdating = False
For jour = 1 To 34
    dest(0, -1) = "JOURNEE " & jour 'titre
    dest = source.Value 'copie les valeurs
    Set source = source.Offset(11)
    Set dest = dest.Offset(12)
Next
End Sub
Chez moi sur Win 11 Excel 2019 elle s'exécute en 3,6 secondes.

A+
 

Pièces jointes

  • Belgique.xlsm
    846.2 KB · Affichages: 1

job75

XLDnaute Barbatruc
En ajoutant les Application.Calculation l'exécution se réduit à 0,20 seconde :
VB:
Sub Transfert()
Dim source As Range, dest As Range, jour%
Set source = Sheets("JUPILER PRO LEAGUE").[G4:H12]
Set dest = Sheets("%").[I5:J13]
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For jour = 1 To 34
    dest(0, -1) = "JOURNEE " & jour 'titre
    dest = source.Value 'copie les valeurs
    Set source = source.Offset(11)
    Set dest = dest.Offset(12)
Next
Application.Calculation = xlCalculationAutomatic
End Sub
 

Pièces jointes

  • Belgique(1).xlsm
    845.3 KB · Affichages: 2

job75

XLDnaute Barbatruc
Si la feuille de destination est protégée il faut connaître le mot de passe, si c'est "toto" :
VB:
Sub Transfert()
Dim source As Range, dest As Range, jour%
Set source = Sheets("JUPILER PRO LEAGUE").[G4:H12]
Set dest = Sheets("%").[I5:J13]
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
dest.Parent.Protect "toto", UserInterfaceOnly:=True
For jour = 1 To 34
    dest(0, -1) = "JOURNEE " & jour 'titre
    dest = source.Value 'copie les valeurs
    Set source = source.Offset(11)
    Set dest = dest.Offset(12)
Next
Application.Calculation = xlCalculationAutomatic
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…