Maksime568 Messages postés142Date d'inscriptionStatutMembreDernière intervention - Maksime568 Messages postés142Date d'inscriptionStatutMembreDernière intervention - 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.
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 ?
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?
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
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?
public ligne1 as integer
et ça fonctionne.
Il semblerait que la déclaration c'est effacé à un moment ...
Merci