Macro qui ne fonctionne plus

Bonjour

j'ai besoin de votre aide pour faire fonctionner une macro qui calcule le taux de non conformités

elle fait la somme du colonne s "pièces réelles" et la somme des pièces non conformes en colonne X "pièces NC" pour finalement calculer le taux

mais cette macro ne calcule plus ces sommes

aussi pour la feuille nommée 30-12-2021 pour un autre calcul avec le formule suivante =SOMME('31-1-23:02-1-23'!$AA$9:$AA$24)/INDEX(FREQUENCE('31-1-23:02-1-23'!$AA$9:$AA$24;0);2)

elle ne fonctionne plus ca retourne erreur division par zéro

svp j'ai besoin d'un coup de main

le classeur est ci joint

22production-2023.zip (603.38 Ko)

merci d'avance

Bonsoir Safach,

Et dans tout ce bazar, ou se situe le problème exactement

A+

Bonjour

merci de votre retour

le problème est dans la feuille nommée 29-12-2021 au début du classeur pour commande : "actualiser" qui ne calcule plus les sommes des lignes 10 et 11

et la formule dans la feuille 30-12-2021 qui donne une erreur

merci encore!

Bonjour,

Désolé, mais je pense que je ne pourrais pas vous aider, vos boutons font appel à un autre classeur à priori

Et je ne comprends rien à votre façon de procéder

Bonne chance

Bonjour

4production-2023.zip (654.47 Ko)

j'ai affecté le bouton à la macro actualiser du classeur 2023

cette macro est dans le module 4

si vous essayez de m'aider ça sera très gentil de votre part

cordialement

Bonjour,

La procédure "Actualiser" parcours toutes les feuilles du classeur, récupère le mois de la cellule A1 et en fonction additionne les valeurs du mois

Sauf que si je regarde la cellule A1 de la feuille du 31-1-23 j'ai "21-4-2022" rien à voir

Ensuite le code additionne les valeurs des colonne U et T

Jan = Jan + WorksheetFunction.Sum(.Range("U9:U25"))
Jan2 = Jan2 + WorksheetFunction.Sum(.Range("T9:T25"))

Or "U" dans les feuilles est "Observation", la colonne "T" est le rendement, mais les lignes ne s'arrêtent pas à 25, mais à 26

Il faut donc modifier le code

Quelles sont les 2 colonne que vous voulez additionnée au départ

A+

Bonjour

merci de votre aide

en ligne 10 je veux additionner la colonne des pièces réelles en S

en ligne 11 je veux additionner la colonne des pièces NC en X

et ce pour chaque mois pour en calculer le taux à la ligne 12

merci infiniment

Bonjour,

Voici le code simplifié pour faire le total de vos mois

Sub Actualiser()
  Dim i As Integer, Ind As Integer
  Dim Tot1(12), Tot2(12)
  Dim dLig As Long, Col As Long
  ' Pour chaque feuille du classeur
  For i = 1 To ThisWorkbook.Sheets.Count
    ' Avec la feuille
    With Sheets(i)
      ' Si la cellule A1 est une date
      If IsDate(.Range("A1")) Then
        ' Récupérer le numéro de la dernière ligne de la colonne A
        dLig = .Range("A" & Rows.Count).End(xlUp).Row
        ' Mémoriser l'index du mois
        Ind = Month(.Range("A1"))
        ' Faire le total 1 de l'index
        Tot1(Ind) = Tot1(Ind) + WorksheetFunction.Sum(.Range("S9:S" & dLig))
        ' Faire le total 2 de l'index
        Tot2(Ind) = Tot2(Ind) + WorksheetFunction.Sum(.Range("X9:X" & dLig))
      End If
    End With
  Next i
  ' Restitution
  With ActiveSheet
    For Col = 2 To 13
      .Cells(10, Col).Value = Tot1(Col - 1)
      .Cells(11, Col).Value = Tot2(Col - 1)
    Next Col
  End With
End Sub

Ceci dit, dans la cellule A1 de vos feuilles il y a toujours la même date "21-04-2022", il faudra donc la modifier

Peut-être avec ce code

  For i = 1 To ThisWorkbook.Sheets.Count
    ' Inscrire en A1 la date de l'onglet en texte
    With Sheets(i)
      ' Si la cellule A1 est une date
      If IsDate(.Range("A1")) Then
        .Range("A1").Value = "'" & .Name
      End If
    End With
  Next i

A+

Bonjour

merci de votre aide

ou inscrire le code pour modifier A1 svp ?

Re,

Dans un module, code que vous pouvez lancer directement de VBA project

A+

Bonjour

en copiant le code dans un module ca me donne le message suivant

image

Re,

Bien évidemment... il faut mettre cette ligne entre Sub et End Sub...
vous ne semblez pas le savoir, c'est quand même malheureux

Sub InscriptionDate
For i = 1 To ThisWorkbook.Sheets.Count
    ' Inscrire en A1 la date de l'onglet en texte
    With Sheets(i)
      ' Si la cellule A1 est une date
      If IsDate(.Range("A1")) Then
        .Range("A1").Value = "'" & .Name
      End If
    End With
  Next i
End Sub

A+

Bonjour

merci de votre clarification

je ne maitrise pas le VBA malheureusement c'est une macro deja existante qui a cessé de fonctionner et me voila ici pour avoir de l'aide

c'est très gentil de votre part

sinon j'ai la formule dans la feuille nommée 30-12-2021 qui retourne une erreur et ele fonctionnait pour les données du classeur 2022 mais pas pour ce classeur de 2023

merci de m'aider

cordialement

Bonjour safach,

Je me suis permis cette réflexion car vous être inscrit depuis 2015

Il faudra être plus explicite dans vos demandes si vous voulez de l'aide, quelle formule dans quelle cellule ?

A+

bonjour

je parle de cette formule à la feuille nommée 30-12-2021

image

merci à vous !

Re,

Effectivement, j'avais effacé par mégarde les formules de cette feuille
Pour éviter d'avoir le message d'erreur qui est normal puisqu'il n'y a aucune donnée dans aucune feuille

=SIERREUR(SOMME('31-1-23:02-1-23'!$AA$9:$AA$26)/INDEX(FREQUENCE('31-1-23:02-1-23'!$AA$9:$AA$26;0);2);0)

A+

Bonjour

cette formule me retourne zero

ou est le problème svp

Bonjour Safach,

Il n'y a pas d'erreur pour moi, dans aucune des feuilles 01/2023 vous n'avez de valeur dans la colonne AA

Donc SOMME de 0 / index de fréquence de 0 = Erreur, donc résultat 0

Bonjour

merci de votre aide si précieuse

cordialement

Rechercher des sujets similaires à "macro qui fonctionne"