Microsoft 365 VBA Compléter une ligne par rapport à une référence

Louism

XLDnaute Nouveau
Bonjour à tous,

Je travaille actuellement sur la mise en place d’une GMAO au sein de mon entreprise.

Le but de cette macro est d’enregistrer les informations du compte rendu dans la ligne correspondante dans mes onglets « historique des interventions » et « archive des demandes » selon la référence renseignée dans le compte rendu.

Sans le paragraphe que j’ai rajouté, la macro marche (enregistrement des informations dans l’historique des interventions). J’ai donc fait un copié collé du paragraphe en modifiant le nom de l’onglet et la colonne où sont enregistrées les références pour mon archive des demandes mais cela bloque à ce niveau.

J’aurai besoin de votre précieuse aide et vous remercie d’avance.

Je vous joints la macro en pdf.
 

Pièces jointes

  • Échec macro.pdf
    65.9 KB · Affichages: 19

Louism

XLDnaute Nouveau
Bonjour
Tu n'utilises pas des 1/4 de ligne donc ligne as long mais pas double
Un fichier excel c'est beaucoup mieux
sinon la macro entre les </>
mais un pdf... on peut même pas faire un copier/ coller
Salut

Je vous remercie pour votre retour, je ne peux pas vous transférer le fichier car celui ci est beaucoup trop volumineux. Je vous joints un classeur où j'ai copié les trois onglets en question mais il n'y a donc aucune trace des macros dans le VBA.

Je vous copie colle aussi la macro ci-dessous :

Sub Complement_reguliere()
'
' Oter la protection sur les feuilles
'
ActiveWorkbook.Sheets("Historique des interventions").Unprotect ("admin")
ActiveWorkbook.Sheets("Traitement des demandes").Unprotect ("admin")
ActiveWorkbook.Sheets("Archive des demandes").Unprotect ("admin")
'
' Déclaration des variables
'
Dim ref As String, date_effective As Date, duree As String, remarques As String
Dim ligne As Double, check As Double
ligne = 3
'
' Récupérer les informations saisies
'
ActiveWorkbook.Sheets("Traitement des demandes").Activate
ref = Range("A9")
date_effective = Range("A12")
duree = Range("A15")
remarques = Range("A18")
'
' Compléter le compte rendu sur l'historique des interventions
'
ActiveWorkbook.Sheets("Historique des interventions").Activate

While Not Range("C" & ligne).Value Like ref
ligne = ligne + 1
Wend
check = ligne

Range("B" & check).Value = date_effective
Range("M" & check) = duree
Range("N" & check) = remarques
Range("T" & check) = "V"
'
' Récupérer les informations saisies
'
ActiveWorkbook.Sheets("Traitement des demandes").Activate
ref = Range("A9")
date_effective = Range("A12")
duree = Range("A15")
remarques = Range("A18")
'
' Compléter le compte rendu sur l'historique des demandes
'
ActiveWorkbook.Sheets("Archive des demandes").Activate

While Not Range("B" & ligne).Value Like ref
ligne = ligne + 1
Wend
check = ligne

Range("L" & check).Value = date_effective
Range("R" & check) = "Validé"
Range("S" & check) = remarques
'
' Protection
'
ActiveWorkbook.Sheets("Historique des interventions").Protect ("admin")
ActiveWorkbook.Sheets("Traitement des demandes").Protect ("admin")
ActiveWorkbook.Sheets("Archive des demandes").Protect ("admin")

End Sub
 

Pièces jointes

  • Version simplifié Excel download.xlsm
    115.1 KB · Affichages: 10

Discussions similaires

Statistiques des forums

Discussions
315 092
Messages
2 116 119
Membres
112 666
dernier inscrit
Coco0505