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

Macro qui ne s'execute correctement qu'une fois

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

A

anelinette

Guest
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
 

Pièces jointes

Bonjour le forum

J'ai suivi les conseils du forum (éviter les Select)
Est-ce que ta macro fonctionne mieux ainsi?
VB:
Sub presta()
' presta Macro
'empêche de voir le travail de la macro
Dim DerLig As Long
DerLig = Sheets("Base prestataire").Cells(Rows.Count, "A").End(xlUp).Row + 1
Application.ScreenUpdating = False
'Rempli la zone ENTREPRISE
Sheets("fiche").Range("F11").Copy
Sheets("Base prestataire").Range("A" & DerLig).PasteSpecial Paste:=xlPasteValues
'Remplissage la zone CONTRAT
Sheets("fiche").Range("P11").Copy
Sheets("Base prestataire").Range("D" & DerLig).PasteSpecial Paste:=xlPasteValues
  
'rempli la zone date d"arrivée
Sheets("fiche").Range("F7").Copy
Sheets("Base prestataire").Range("F" & DerLig).PasteSpecial Paste:=xlPasteValues
  
'rempli la zone date de fin
Sheets("fiche").Range("w7").Copy
Sheets("Base prestataire").Range("g" & DerLig).PasteSpecial Paste:=xlPasteValues
'Rempli la zone NOM
Sheets("fiche").Range("F9").Copy
Sheets("Base prestataire").Range("L" & DerLig).PasteSpecial Paste:=xlPasteValues
      
'Rempli la zone PRENOM
Sheets("fiche").Range("P9").Copy
Sheets("Base prestataire").Range("M" & DerLig).PasteSpecial Paste:=xlPasteValues
  
'Rempli la zone NNI
Sheets("fiche").Range("Y9").Copy
Sheets("Base prestataire").Range("N" & DerLig).PasteSpecial Paste:=xlPasteValues

'Rempli la zone TELEPHONE FIXE
Sheets("fiche").Range("H33").Copy
Sheets("Base prestataire").Range("AF" & DerLig).PasteSpecial Paste:=xlPasteValues
    
'Rempli la zone TELEPHONE DECT
Sheets("fiche").Range("H31").Copy
Sheets("Base prestataire").Range("AI" & DerLig).PasteSpecial Paste:=xlPasteValues
            
'termine la fin du travail macro
Application.ScreenUpdating = True
  
End Sub
 
Une macro rédigée comme certaines macros que j'ai pu découvrir sur ce forum.
En théorie, le résultat est pareil que la première mais on ne fait pas usage du copier/coller
VB:
Sub presta()
Dim DerLig As Long, FB As Worksheet, FF As Worksheet
Application.ScreenUpdating = False
Set FB = Sheets("Base prestataire"): Set FF = Sheets("fiche")
FB.Activate
DerLig = FB.Cells(Rows.Count, "A").End(xlUp).Row + 1
Application.ScreenUpdating = False
FB.Range(Cells(DerLig, "A"), Cells(DerLig, "D")) = Array(FF.[F11], vbNullString, vbNullString, FF.[P11])
FB.Range(Cells(DerLig, "F"), Cells(DerLig, "G")) = Array(FF.[F7], FF.[W7])
FB.Range(Cells(DerLig, "L"), Cells(DerLig, "M")) = Array(FF.[F9], FF.[P9])
FB.Cells(DerLig, "N") = FF.[Y9]
FB.Cells(DerLig, "AF") = FF.[H33]
FB.Cells(DerLig, "AI") = FF.[H31]
End Sub
 
Bonjour anelinette, Yuperqod,

a priori le souci se situe sur la Sub point_zero() (module5) au niveau de l'insertion de ligne.

Pas trouvé pourquoi ni comment y remédier sauf réécrire la macro:

Un essai :
Code:
Sub point_zero()
'
'empêche de voir le travail de la macro
Application.ScreenUpdating = False

Dim DL As Long, Tablo
Tablo = Array("F7", "W7", "F9", "P9", "Y9", "F11", "P11", "F15", "P15", "E19", "J19", "E21", "O19", "A1", "T19", "H25", "Q25", "H29", "Q29", "H27", "H31", "H33", "Q31", "H37", "N37", "H39", "N39", "H41", "N41", "H43", "N43")
DL = Worksheets("Point ZERO").Range("A" & Rows.Count).End(xlUp).Row + 1
For i = LBound(Tablo) To UBound(Tablo)
    Worksheets("Point ZERO").Cells(DL, i + 1) = Worksheets("Point ZERO").Range(Tablo(i))
Next
' réactiver M à J de l'écran
Application.ScreenUpdating = True
End Sub

A+
 
- 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

  • Question Question
Microsoft 365 Formule
Réponses
3
Affichages
174
Réponses
4
Affichages
445
Réponses
3
Affichages
209
Réponses
5
Affichages
268
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…