Recopie données de plusieurs colonne vers le bas en vba

philmaure

XLDnaute Impliqué
Bonjour,

Je souhaite recopier les formules de plusieurs colonnes jusqu'à la derniere ligne vide.
Ma recopie stoppe à la ligne 21 sans que ce soit la dernière mais je ne comprend pas pourquoi.
Merci pour votre aide
Cdlt
Philippe
 

Pièces jointes

  • test.xls
    60 KB · Affichages: 15
  • test.xls
    60 KB · Affichages: 29
  • test.xls
    60 KB · Affichages: 25

Staple1600

XLDnaute Barbatruc
Re : Recopie données de plusieurs colonne vers le bas en vba

Bonjour à tous

philmaure
Voici ta macro réécrite à ma sauce
Le résultat est-il celui escompté?
Code:
Sub Tech_par_activitéTER()' Nombre de tech par activité
Dim DernLigne As Long
'Entêtes
Range("Y1:AF1") = Array("Front", "Back", "Nbre en CA", "Formation", "Réunion", "IRP", "Maladie", "Soutien")
'Front et Back
Range("Y2:Z2").FormulaR1C1 = "=IF(RC[-19]=0,"""",IF(RC[-19]>300,1,0.5))"
' Congés (addition de plusieurs critères)
Range("AA2").FormulaR1C1 = "=IF(SUM(RC[-16]:RC[-12])=0,"""",IF(SUM(RC[-16]:RC[-12])>300,1,0.5))"
'Formation
Range("AB2").FormulaR1C1 = "=IF(RC[-11]=0,"""",IF(RC[-11]>300,1,0.5))"
'Réunion
Range("AC2").FormulaR1C1 = "=IF(RC[-7]=0,"""",IF(RC[-7]>300,1,0.5))"
'IRP et Maladie
Range("AD2:AE2").FormulaR1C1 = "=IF(RC[-12]=0,"""",IF(RC[-12]>300,1,0.5))"
'Soutien
Range("AF2").FormulaR1C1 = "=IF(RC[-8]=0,"""",IF(RC[-8]>300,1,0.5))"
'Recopie des formules jusqu'à la dernière ligne non vide
DernLigne = Cells(Rows.Count, 1).End(3).Row
Range("Y2:AF" & DernLigne).FillDown
End Sub

EDITION: Bonjour pierrejean ;)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Recopie données de plusieurs colonne vers le bas en vba

Suite...

Avec une sauce allégée ;)
Code:
Sub Tech_par_activitéTERBIS()
Dim DernLigne As Long, col, i As Byte
col = Array("Y2:Z2", 19, "AB2", 11, "AC2", 7, "AD2:AE2", 12, "AF2", 8)
'Entêtes
Range("Y1:AF1") = Array("Front", "Back", "Nbre en CA", "Formation", "Réunion", "IRP", "Maladie", "Soutien")
Range("AA2").FormulaR1C1 = "=IF(SUM(RC[-16]:RC[-12])=0,"""",IF(SUM(RC[-16]:RC[-12])>300,1,0.5))"
For i = LBound(col) To UBound(col) Step 2
Range(col(i)).FormulaR1C1 = "=IF(RC[-" & col(i + 1) & "]=0,"""",IF(RC[-" & col(i + 1) & "]>300,1,0.5))"
Next
DernLigne = Cells(Rows.Count, 1).End(3).Row
Range("Y2:AF" & DernLigne).FillDown
End Sub
 

philmaure

XLDnaute Impliqué
Re : Recopie données de plusieurs colonne vers le bas en vba

Re,
un grand merci à vous deux pour vos réponses.
Pour info seule la dernière solution de Stapple fonctionne. Les 2 premières boguent.
Je vous souhaite une bonne journée
Cdlt
Philippe
 

Discussions similaires

Statistiques des forums

Discussions
314 210
Messages
2 107 301
Membres
109 798
dernier inscrit
NAJI2005