Erreur dans une macro

Bonjour à tous

Je souhaite faire une GMAO (Gestion de maintenance assisté par ordinateur).

J'ai essayé de faire une macro en faisant plein de recherches sur Internet mais j'ai du mer** quelque part.

Ce que je veut de cette macro: (Je prend exemple de la ligne 6, ça peut être une autre ligne)

Quand un "X" est inscrit en I6 une "MsgBox" me demande si j'ai bien enlevé les pièces utilisées du stock :

  • Si oui, une "inputbox" s'affiche me demandant qui est intervenu et la réponse s'inscrit en H6
  • Si non, il m’affiche la feuille "stock" et la macro s’arrête la)

Puis, je veux que la ligne 6 soit supprimée pour être placée dans la feuille "Historique des biens" tout en haut du tableau.

J'espère que je me suis bien expliquer (si ce n'est pas le cas n'hésitez pas à me dire ce que vous n'avez pas compris)

Je vous mets la macro ainsi que le tableau si besoin :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim CPTR_Ligne As String, CPTR_Boucle01 As String, Resultat As String, N°Ligne As String, Ma_Plage As Range
CPTR_Ligne = Range("K1")
CPTR_Boucle01 = 1
N°Ligne = 6
If Range("K2") = 1 Then
    While CPTR_Boucle01 >= CPTR_Ligne
        If Cells(N°Ligne, 9) = X Then
            If MsgBox("Êtes-vous sûr d'avoir enlevé les pièces utilisées du stock?", vbYesNo + vbQuestion) = vbYes Then
            Resultat = InputBox("Qui est intervenu sur cette opération?", vbQuestion)
            Cells(N°Ligne, 8) = Resultat
            Set Ma_Plage = Range("A" & N°Ligne & ":I" & N°Ligne)
            Ma_Plage.Select
            Selection.Copy
            Sheets("Historiqu").Select
            Rows("6:6").Select
            Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            Range("B6").Select
            ActiveSheet.Paste
            Sheets("Travaux").Select
            Else
            Cells(N°Ligne, 9).ClearContents
            Sheets("Stock").Select
            Exit Sub
            End If
        Else
        CPTR_Boucle01 = CPTR_Boucle01 + 1
        N°Ligne = N°Ligne + 1
        End If
    Wend
Else
End If
End Sub
47gmao-version-1.xlsm (45.36 Ko)

Je remercie par avance toutes les personnes qui prendront du temps pour m’aider dans mon projet.

bonjour

mon conseil perso rien que de moi : ne pas se lancer avec Excel dans une telle aventure. Préférer de loin Access ou autre SGBD.

ou alors faire de l'Excel très simple : un seul tableau. Mais tu ne voudras pas.

Exemple des tables que tu dois gérer :

  • machines
  • composants
  • composants par machines (nomenclatures)
  • interventions (date, machine, personne) prévisionnel et passé (heureusement c'est la même table
  • composantschangés par machine et achats composants (c'est la même table)

plus de 2 tables -> passer à Access

Rechercher des sujets similaires à "erreur macro"