Erreur de programmation apparue soudainement

Résolu/Fermé
Maksime568 Messages postés 144 Date d'inscription mardi 15 avril 2014 Statut Membre Dernière intervention 28 novembre 2022 - Modifié par pijaku le 29/04/2015 à 07:56
Maksime568 Messages postés 144 Date d'inscription mardi 15 avril 2014 Statut Membre Dernière intervention 28 novembre 2022 - 4 mai 2015 à 08:49
Bonjour,

j'utilise depuis quelques semaines un fichier excel avec macro.
Il fonctionnait bien jusqu'à aujourd'hui.
Je ne comprend pas vraiment pourquoi alors que tout allait bien avant.

ci-dessous le code avec la ligne avec problème


Private Sub dateE_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Len(dateE) <> 5 Or Not IsNumeric(dateE) Then MsgBox ("Entrer 5 chiffres SVP"): dateE = ""
End Sub

Private Sub num_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

'déclaration des variables :
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String, AdresseTrouvee As String

'********* à adapter ***********
'affectation de valeurs aux variables :
    'on cherche le mot "Trouve"
Valeur_Cherchee = num.Value
    'dans la 5e colonne de la feuille active
Set PlageDeRecherche = ActiveSheet.Columns(5)
'*******************************

'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)

'traitement de l'erreur possible : Si on ne trouve rien :
If Trouve Is Nothing Then
    'ici, traitement pour le cas où la valeur n'est pas trouvée
    MsgBox "Ce n° n'existe pas ": Me.num = ""
Else
    'ici, traitement pour le cas où la valeur est trouvée
    ligne = Trouve.Row
End If

'vidage des variables
Set PlageDeRecherche = Nothing
Set Trouve = Nothing
End Sub



Sub test()

If Me.num = "" Or Me.dateE = "" Then MsgBox ("Date ou n° manquant"): Exit Sub
If ActiveSheet.Range("CA" & ligne) <> "" Then MsgBox ("Pièce déjà emballée"): Me.num = "": Exit Sub
If ActiveSheet.Range("T" & ligne) <> "OK" Then MsgBox ("Pièce non emballable"): Me.num = "": Exit Sub
ActiveSheet.Range("CA" & ligne) = Me.dateE
Me.num = ""

End Sub

Private Sub SUIVANT_Click()
test
EMBALLAGE.num.SetFocus
End Sub

Private Sub TERMINER_Click()
EMBALLAGE.Hide
End Sub


l'erreur dit "nom ambigu détecté : ligne" ou parfois ~ a la place de ligne
alors que avant pas de soucis.
j'ai changé le nom "ligne" mais là j'ai d'autre soucis, erreur définie par l'application ou par l'objet.

Savez-vous d'où vient le soucis?
Merci

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
28 avril 2015 à 17:53
Bonjour,

Ta variable Ligne .. n'est pas déclarée dans le SUB où se trouve l'erreur...
N'aurais tu pas, en haut de ton MODULE principale, une déclaration PUBLIC de cette variable ?

1
Maksime568 Messages postés 144 Date d'inscription mardi 15 avril 2014 Statut Membre Dernière intervention 28 novembre 2022
Modifié par pijaku le 29/04/2015 à 07:57
Bonjour,

non je n'ai pas de déclaration public de cette variable.

c'est ce que je me suis dit pour l'erreur, j'ai donc déclarée la variable et là j'obtiens:
"Erreur définie par l'application ou par l'objet" à la ligne soulignée
If Me.num = "" Or Me.dateE = "" Then MsgBox ("Date ou n° manquant"): Exit Sub
If ActiveSheet.Range("CA" & ligne1) <> "" Then MsgBox ("Pièce déjà emballée"): Me.num = "": Exit Sub
If ActiveSheet.Range("T" & ligne1) <> "OK" Then MsgBox ("Pièce non emballable"): Me.num = "": Exit Sub
ActiveSheet.Range("CA" & ligne1) = Me.dateE
Me.num = ""


ce que je ne comprend absolument pas c'est, pourquoi ça fonctionne sur certains onglet et par sur un seul (même quand la variable n'est pas déclarée!).
Et pourquoi ça fonctionnait bien la semaine dernière même sur l'onglet posant problème aujourd'hui?
0
Maksime568 Messages postés 144 Date d'inscription mardi 15 avril 2014 Statut Membre Dernière intervention 28 novembre 2022
4 mai 2015 à 08:49
rajout de la déclaration
public ligne1 as integer
et ça fonctionne.
Il semblerait que la déclaration c'est effacé à un moment ...
Merci
0