Macro qui ne s'execute bien q'une fois
Bonjour,
j'ai fait une macro qui reprend les données d'une fiche, et les inscris dans une autre feuille du même classeur.
quand j'exécute la macro elle me rempli bien la ligne, mais si je l'exécute de nouveau elle ne me rempli que la moitié de mes données
Merci d'avance pour votre aide
Bonjour,
Il y a beaucoup à faire pour rendre l'ensemble rationnel !
Une procédure MAJ pour remplacer les tiennes, qui évite les répétitions inutiles, qui ne procède pas par sélection, ni par copier-coller...
Sub MAJ()
Dim Ld(), prD, dnO, i%
prD = Array(1, 4, 6, 7, 12, 13, 14, 32, 35)
dnO = Split("F11 P11 F7 W7 F9 P9 Y9 H33 H31")
ReDim Ld(1 To 35)
With Worksheets("fiche")
For i = 0 To UBound(prD)
Ld(prD(i)) = .Range(dnO(i))
Next i
End With
With Worksheets("Base prestataire")
.Range("A3:AV3").Insert xlShiftDown, xlFormatFromRightOrBelow
.Range("A3").Resize(, UBound(Ld)).Value = Ld
End With
dnO = Split("F7 W7 F9 P9 Y9 F11 P11 F15 P15 E19 J19 E21 O19")
ReDim Ld(1 To 13)
With Worksheets("fiche")
For i = 0 To UBound(dnO)
Ld(i + 1) = .Range(dnO(i))
Next i
End With
With Worksheets("Point ZERO")
.Range("A3:AE3").Insert xlShiftDown, xlFormatFromRightOrBelow
.Range("A3").Resize(, UBound(Ld)).Value = Ld
End With
dnO = Split("T19 H25 Q25 H29 Q29 H27 H31 H33 Q31 H37 N37 H39 N39 H41 N41 H43 N43")
ReDim Ld(1 To 17)
With Worksheets("fiche")
For i = 0 To UBound(dnO)
Ld(i + 1) = .Range(dnO(i))
Next i
End With
Worksheets("Point ZERO").Range("O3").Resize(, UBound(Ld)).Value = Ld
End SubPour le reste, il serait bon de commencer par réduire les modules standard à un seul et d'y rassembler toutes les procédures (à l'exception d'une évènementielle que j'ai aperçu au passage et qui, si elle est destinée à fonctionner ne le peut dans un module standard...)
Et bien sûr revoir toutes les procédures enregistrées pour les réécrire sans Select ni autres ajouts inutiles de l'enregistreur (aucune procédure optimale ne peut résulter d'un enregistrement...)
Cordialement.
Bonjour, c'est tout simplement génial ça fonctionne très bien
Merci beaucoup, je suis admirative !!