Macro qui ne s'execute correctement qu'une fois

anelinette

XLDnaute Nouveau
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

  • base travail.xls
    210 KB · Affichages: 46

Yurperqod

XLDnaute Occasionnel
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
 

Yurperqod

XLDnaute Occasionnel
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
 

Paf

XLDnaute Barbatruc
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+
 

Discussions similaires

Statistiques des forums

Discussions
314 198
Messages
2 107 091
Membres
109 751
dernier inscrit
Bikaloulou dorel fesnell