Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Nom ambigui détecté

RONIBO

XLDnaute Impliqué
Bonjour,

Je rencontre des erreurs dans mes macros, je vous mets une capture avec l'erreur



Pense qu'il y a plusieurs fois le mot "chemin" dans différent code, c'est peut être pour ça que sa bloque, je me trompe?

VB:
Private Sub CDevis_Click()
chemin= "C:\Akisti Bat\Devis\"
ListeFacturesDevis.Caption = "Devis"
ListeFacturesDevis.Titre = "Liste des devis"
ListeFacturesDevis.Show
Me.Hide
End Sub
Private Sub CFactures_Click()
chemin= "C:\Akisti Bat\Facture\"
ListeFacturesDevis.Caption = "Factures"
ListeFacturesDevis.Titre = "Liste des factures"
ListeFacturesDevis.Show
Me.Hide
End Sub

VB:
Private Sub TMiseAJour_Click()
Dim Ctrl As Control
Dim Ligne As Long
If Me.ComboBox1.ListIndex = -1 Then
MsgBox "Veuillez sélectionner un nom à modifier !", vbInformation, "Attention"
Exit Sub
End If
If Trim(Me.TNom) = "" Then
Me.TNom.BackColor = vbRed
MsgBox "Veuilez renseigner au moins le nom de la société !", vbInformation, "Attention"
Exit Sub
End If
Application.ScreenUpdating = False
With Sheets("Clients")
Ligne = Me.ComboBox1.ListIndex + 4
For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
If Val(Ctrl.Tag) > 0 Then
   .Cells(Ligne, Val(Ctrl.Tag)) = Ctrl
If Val(Ctrl.Tag) = 3 Then
   .Cells(Ligne, Val(Ctrl.Tag)) = Ctrl & " " & CVille
Else
   .Cells(Ligne, Val(Ctrl.Tag)) = Ctrl
End If
End If
End If
Next
Trier
   .Visible = xlSheetVisible
   .Copy
   .Visible = xlSheetVeryHidden
End With
With ActiveWorkbook
Application.DisplayAlerts = False
   .SaveAs Filename:=chemin& Fichier, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
   .Close
End With
MsgBox "La modification a bien été faite !", vbInformation, "Confirmation"
Me.Hide
End Sub

VB:
Private Sub TSuppressionClient_Click()
Dim DerLigne As Long
If Me.ComboBox1.ListIndex = -1 Then
MsgBox "Veuillez sélectionner un nom à supprimer !", vbInformation, "Attention"
Exit Sub
End If
If MsgBox("Voulez-vous supprimer ce client : " & Me.ComboBox1 & " ?", vbQuestion + vbYesNo + vbDefaultButton2, _
"Opération irréversible") <> vbYes Then Exit Sub
Application.ScreenUpdating = False
With Sheets("Clients")
   .Rows(Me.ComboBox1.ListIndex + 4).ClearContents
DerLigne = .Range("A" & Rows.Count).End(xlUp).Row
Trier
   .Visible = xlSheetVisible
   .Copy
   .Visible = xlSheetVeryHidden
End With
With ActiveWorkbook
Application.DisplayAlerts = False
   .SaveAs Filename:=chemin& Fichier, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
   .Close
End With
MsgBox "Le client sélectionné à bien été supprimée !", vbInformation, "Confirmation"
Me.Hide
End Sub

VB:
Private Sub BAjouter_Click()
Dim Ctrl As Control
Dim DerLigne As Long
If Trim(Me.TNom) = "" Then
Me.TNom.BackColor = vbRed
MsgBox "Veuilez renseigner au moins le nom de la société", vbInformation, "Attention"
Exit Sub
End If
Application.ScreenUpdating = False
With Sheets("Clients")
DerLigne = .Range("A" & Rows.Count).End(xlUp).Row + 1
For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
If Val(Ctrl.Tag) > 0 Then
If Val(Ctrl.Tag) = 3 Then
   .Cells(DerLigne, Val(Ctrl.Tag)) = Ctrl & " " & CVille
Else
   .Cells(DerLigne, Val(Ctrl.Tag)) = Ctrl
End If
End If
End If
Next
Trier
   .Visible = xlSheetVisible
   .Copy
   .Visible = xlSheetVeryHidden
End With
With ActiveWorkbook
Application.DisplayAlerts = False
   .SaveAs Filename:=chemin& Fichier, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
   .Close
End With
Me.TNom.BackColor = vbWhite
Me.Hide
End Sub

VB:
Private Sub Liste_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Workbooks.Open (chemin & Liste.Text)
Me.Hide
End Sub
Private Sub UserForm_Initialize()
On Error Resume Next
new_chemin (chemin)
End Sub
Function new_chemin(Chemin_a_ouvrir As String) As String
Fichier = Dir(Chemin_a_ouvrir & "\*.*")
Do While Len(Fichier) > 0
Liste.AddItem Fichier
Fichier = Dir()
Loop
End Function

Merci et à bientôt
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Nom ambigui détecté

Bonjour Ronibo, bonjour le forum,

Tu ne peux pas impunément déclarer plusieurs fois (PUBLIC) la variable chemin dans les modules 2 et 4 et en plus dans le composant ThisWorkbook...
 

JCGL

XLDnaute Barbatruc
Re : Nom ambigui détecté

Bonjour à tous,

Si tu déclares une variable en Public, ne le fait qu'un fois pour toutes.

A+ à tous

Edition : Je te conseille de DL MZTools pour analyser ton code... ​En plus d'un débogage par VBE
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Nom ambigui détecté

Bonjour.
Permettez moi de corriger un temps soit peu Robert:
Tu ne peux pas impunément déclarer un même nom comme variable Public dans plusieurs modules ordinaires, mais tu pourrais à la rigueur déclarer en plus ce même nom comme propriété Public de ThisWorkbook ! Si tu tient à tout compliquer !

Ce n'est que lorsqu'elle est déclarée Public dans un module ordianaire qu'elle est connue sans préfixe de tous les modules du projet VBA, même non standards, et a une implantation unique en mémoire.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Nom ambigui détecté

Je suis perdue!
Pourquoi ? Si une variable n'est pas commune à plusieurs modules pouvant ainsi se la communiquer, il n'y a pas à la déclarer Public.
On peut éventuellement réutiliser ce nom dans un module où on ne souhaite pas utiliser la variable globale du projet (c'est ce que définit le mot Public: un élément commun à tout le projet, du moins dans un module ordinaire car dans toutes les autres sortes de modules ça en définit une propriété ou une méthode) mais à condition de ne pas la déclarer Public. Mais c'est à déconseiller pour la clarté générale, mieux vaut utiliser un autre nom !
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…