XL 2016 Macro

zozo

XLDnaute Occasionnel
Le Bonjour à tous les membres,
J'ai un problème au niveau de la feuille "CHGE-DIRECT", en cliquant sur "Mise à jour" je n'obtient pas de résultat.
Merci pour tout effort de votre part.
 

Pièces jointes

  • Matrice.xlsm
    949.8 KB · Affichages: 3

wDog66

XLDnaute Junior
Bonjour zozo

1) Changer votre code par
VB:
Sub CHGETRT()
'
' CHGETRT Macro
'
With Sheets("CHGE-DIRECT")
  With .Range("B11:L87")
    .Value = 0
    .Formula = "=INDEX(BARESULTAT!$A$1:$CA$500,MATCH(B$10,BARESULTAT!$A$1:$A$500,0),MATCH($A11,BARESULTAT!$C$1:$CA$1,0))"
    .Value = .Value
  End With
End With
  MsgBox "Charges Directes de la Période " & Month(Now()) & ("/") & Year(Now()) & " Réalisées avec succès"
End Sub
La formule n'était pas bonne

2) Vos valeur en ligne 1 de la feuille "BARESULTAT" ne sont pas des chiffres mais du texte
Faites F2 puis Entrée dans chaque cellule
Ou plus simple copiez la valeur 1 dans une cellule et collage spécial valeur par multiplication

A+
 

Cousinhub

XLDnaute Barbatruc
Bonjour,

Au moins 3 erreurs dans la formule insérée :
- La ligne des familles des comptes(60, 61...) est en ligne 10 (donc B10, et non B2)
- Dans l'onglet "BARESULTAT", les comptes sont en ligne 1 (et non 1:3) donc $C$1:$AC$1
- Ces comptes sont au format "Texte" et non numériques (à l'inverse des comptes en colonne A) - On peut corriger en ajoutant &"""" dans la formule afin de convertir en texte également le numéro de compte
Essaie en modifiant ainsi la formule :

VB:
....
....
With Feuil4.[B11:L87]
        .Formula = "=INDEX(BARESULTAT!$C$3:$CA$500,MATCH(B$10,BARESULTAT!$A$2:$A$500,0),MATCH($A11&"""",BARESULTAT!$C$1:$CA$1,0))"
        .Value = .Value
End With
....
....
Bonne apm
 

zozo

XLDnaute Occasionnel
Bonjour zozo

1) Changer votre code par
VB:
Sub CHGETRT()
'
' CHGETRT Macro
'
With Sheets("CHGE-DIRECT")
  With .Range("B11:L87")
    .Value = 0
    .Formula = "=INDEX(BARESULTAT!$A$1:$CA$500,MATCH(B$10,BARESULTAT!$A$1:$A$500,0),MATCH($A11,BARESULTAT!$C$1:$CA$1,0))"
    .Value = .Value
  End With
End With
  MsgBox "Charges Directes de la Période " & Month(Now()) & ("/") & Year(Now()) & " Réalisées avec succès"
End Sub
La formule n'était pas bonne

2) Vos valeur en ligne 1 de la feuille "BARESULTAT" ne sont pas des chiffres mais du texte
Faites F2 puis Entrée dans chaque cellule
Ou plus simple copiez la valeur 1 dans une cellule et collage spécial valeur par multiplication

A+
Merci pour votre aide
Cordialement
 

Statistiques des forums

Discussions
312 860
Messages
2 092 961
Membres
105 571
dernier inscrit
MAT30190