Mon probleme n'est toujours pas corriger

Le
Denis Levesque
Bonjour a tous

J'ai toujours le meme probleme avec mon menu déroulant

J'ai un onglet FACTURE et un onglet BD

L'onglet FACTURE contient la facture avec le menu déroulant
il me permet de sélectionné une personne et l'intégré dans ma facture ce qui
est génial.
Il me permet aussi de rajouté des personnes.

dans l'onglet BD il y a les noms des personnes adresse etc.

si je modifie enleve toute les lignes ou enleve une ligne c'est la que sa
fonctionne plus lorsque j'essai de rajouter quelqu'un d'autre.

a: si j'enlève une ligne parce que la personne n'exite plus par la suite
quand j'essai de faire une nouvelle entrée je recoit un message d'erreur
1004
erreur d'exécution. et sa marche plus.

Je pense que je doit resetter une ou des variables mais je sais pas comment
faire.

voici le code

Private Sub Worksheet_Change(ByVal Target As Range)
Set adrnom = Worksheets("Facture").Range("B8")
If adrnom = "" Then
Application.EnableEvents = False
Sheets("Facture").Range("B9:B11").ClearContents
Application.EnableEvents = True
Exit Sub
End If
If Target.Address = adrnom.Address And Target.Count = 1 Then
Application.EnableEvents = False
If IsError(Application.Match(Target.Value, [ListeClients], 0)) Then
Sheets("BD").Range("ListeClients").End(xlDown).Offset(1, 0) =
Target.Value
Sheets("BD").Range("BdClients").Sort
key1:=Sheets("BD").Range("ListeClients")(1)
adrnom.Offset(1, 0).Resize(3, 1).ClearContents
Else
Target.Offset(1, 0) = Application.VLookup(Target.Value, [BdClients], 2,
False)
Target.Offset(2, 0) = Application.VLookup(Target.Value, [BdClients], 3,
False)
Target.Offset(3, 0) = Application.VLookup(Target.Value, [BdClients], 4,
False)
End If
Application.EnableEvents = True
End If
If Not Intersect(adrnom.Offset(1, 0).Resize(3, 1), Target) Is Nothing And
Target.Count = 1 Then
p = Application.Match([adrnom], [ListeClients], 0)
Sheets("BD").Range("BdClients").Cells(p, Target.Row - adrnom.Row + 1) =
Target
End If
End Sub

merci beaucoup pour votre aide

Denis Levesque
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Philippe.R
Le #4812401
Bonjour Denis,
Quelle est la ligne de code surlignée par le deboggueur ?
Tu pourrais peut être déposer un extrait du fichier sur cjoint (en ayant
retiré les données confidentielles), histoire qu'on puisse tester ?
--
Philippe.R
"Denis Levesque" news:er0%23$
Bonjour a tous

J'ai toujours le meme probleme avec mon menu déroulant

J'ai un onglet FACTURE et un onglet BD

L'onglet FACTURE contient la facture avec le menu déroulant
il me permet de sélectionné une personne et l'intégré dans ma facture ce
qui
est génial.
Il me permet aussi de rajouté des personnes.

dans l'onglet BD il y a les noms des personnes adresse etc.

si je modifie enleve toute les lignes ou enleve une ligne c'est la que sa
fonctionne plus lorsque j'essai de rajouter quelqu'un d'autre.

a: si j'enlève une ligne parce que la personne n'exite plus par la suite
quand j'essai de faire une nouvelle entrée je recoit un message d'erreur
1004
erreur d'exécution. et sa marche plus.

Je pense que je doit resetter une ou des variables mais je sais pas
comment faire.

voici le code

Private Sub Worksheet_Change(ByVal Target As Range)
Set adrnom = Worksheets("Facture").Range("B8")
If adrnom = "" Then
Application.EnableEvents = False
Sheets("Facture").Range("B9:B11").ClearContents
Application.EnableEvents = True
Exit Sub
End If
If Target.Address = adrnom.Address And Target.Count = 1 Then
Application.EnableEvents = False
If IsError(Application.Match(Target.Value, [ListeClients], 0)) Then
Sheets("BD").Range("ListeClients").End(xlDown).Offset(1, 0) =
Target.Value
Sheets("BD").Range("BdClients").Sort
key1:=Sheets("BD").Range("ListeClients")(1)
adrnom.Offset(1, 0).Resize(3, 1).ClearContents
Else
Target.Offset(1, 0) = Application.VLookup(Target.Value, [BdClients],
2, False)
Target.Offset(2, 0) = Application.VLookup(Target.Value, [BdClients],
3, False)
Target.Offset(3, 0) = Application.VLookup(Target.Value, [BdClients],
4, False)
End If
Application.EnableEvents = True
End If
If Not Intersect(adrnom.Offset(1, 0).Resize(3, 1), Target) Is Nothing And
Target.Count = 1 Then
p = Application.Match([adrnom], [ListeClients], 0)
Sheets("BD").Range("BdClients").Cells(p, Target.Row - adrnom.Row + 1)
= Target
End If
End Sub

merci beaucoup pour votre aide

Denis Levesque




Youky
Le #4812331
Salut Denis,
ceci fonctionne parfaitement.
Peut être n'avais-tu pas recu mon dernier message.
Youky

Private Sub Worksheet_Change(ByVal Target As Range)
Set adrnom = Worksheets("Facture").Range("B8")
If adrnom = "" Then
Application.EnableEvents = False
Sheets("Facture").Range("B9:B11").ClearContents
Application.EnableEvents = True
Exit Sub
End If
If Target.Address = adrnom.Address And Target.Count = 1 Then
Application.EnableEvents = False
If IsError(Application.Match(Target.Value, [ListeClients], 0)) Then
Sheets("BD").Range("A" & [BD!A65536].End(3).Row + 1) = Target.Value
Sheets("BD").Range("BdClients").Sort
key1:=Sheets("BD").Range("ListeClients")(1)
adrnom.Offset(1, 0).Resize(3, 1).ClearContents
Else
Target.Offset(1, 0) = Application.VLookup(Target.Value, [BdClients], 2,
False)
Target.Offset(2, 0) = Application.VLookup(Target.Value, [BdClients], 3,
False)
Target.Offset(3, 0) = Application.VLookup(Target.Value, [BdClients], 4,
False)
End If
Application.EnableEvents = True
End If
If Not Intersect(adrnom.Offset(1, 0).Resize(3, 1), Target) Is Nothing And
Target.Count = 1 Then
p = Application.Match([adrnom], [ListeClients], 0)
Sheets("BD").Range("BdClients").Cells(p, Target.Row - adrnom.Row + 1) =
Target
End If
End Sub
Youky
Le #4812261
Re:
en tout début de la macro rajoute ceci car si tu vas en menu Edition et
supprime le tableau les listes perdent les Références

ActiveWorkbook.Names.Add Name:="ListeClients", RefersToR1C1:= _
"=OFFSET(BD!R2C1,,,COUNTA(BD!C1)-1)"

ActiveWorkbook.Names.Add Name:="BdClients", RefersToR1C1:= _
"=OFFSET(BD!R2C1,,,COUNTA(BD!C1)-1,4)"

Youky
Denis Levesque
Le #4812221
Bonjour Philippe R

voici le fichier

http://cjoint.com/?ifscFgK5he

et la ligne qui bug

Sheets("BD").Range("ListeClients").End(xlDown).Offset(1, 0) = Target.Value

pour recréer cette erreur va dans l'onglet BD et efface les personnes qui
sont la

merci beaucoup pour ton aide

Denis

"Philippe.R" news:
Bonjour Denis,
Quelle est la ligne de code surlignée par le deboggueur ?
Tu pourrais peut être déposer un extrait du fichier sur cjoint (en ayant
retiré les données confidentielles), histoire qu'on puisse tester ?
--
Philippe.R
"Denis Levesque" news:er0%23$
Bonjour a tous

J'ai toujours le meme probleme avec mon menu déroulant

J'ai un onglet FACTURE et un onglet BD

L'onglet FACTURE contient la facture avec le menu déroulant
il me permet de sélectionné une personne et l'intégré dans ma facture ce
qui
est génial.
Il me permet aussi de rajouté des personnes.

dans l'onglet BD il y a les noms des personnes adresse etc.

si je modifie enleve toute les lignes ou enleve une ligne c'est la que sa
fonctionne plus lorsque j'essai de rajouter quelqu'un d'autre.

a: si j'enlève une ligne parce que la personne n'exite plus par la suite
quand j'essai de faire une nouvelle entrée je recoit un message d'erreur
1004
erreur d'exécution. et sa marche plus.

Je pense que je doit resetter une ou des variables mais je sais pas
comment faire.

voici le code

Private Sub Worksheet_Change(ByVal Target As Range)
Set adrnom = Worksheets("Facture").Range("B8")
If adrnom = "" Then
Application.EnableEvents = False
Sheets("Facture").Range("B9:B11").ClearContents
Application.EnableEvents = True
Exit Sub
End If
If Target.Address = adrnom.Address And Target.Count = 1 Then
Application.EnableEvents = False
If IsError(Application.Match(Target.Value, [ListeClients], 0)) Then
Sheets("BD").Range("ListeClients").End(xlDown).Offset(1, 0) =
Target.Value
Sheets("BD").Range("BdClients").Sort
key1:=Sheets("BD").Range("ListeClients")(1)
adrnom.Offset(1, 0).Resize(3, 1).ClearContents
Else
Target.Offset(1, 0) = Application.VLookup(Target.Value, [BdClients],
2, False)
Target.Offset(2, 0) = Application.VLookup(Target.Value, [BdClients],
3, False)
Target.Offset(3, 0) = Application.VLookup(Target.Value, [BdClients],
4, False)
End If
Application.EnableEvents = True
End If
If Not Intersect(adrnom.Offset(1, 0).Resize(3, 1), Target) Is Nothing
And Target.Count = 1 Then
p = Application.Match([adrnom], [ListeClients], 0)
Sheets("BD").Range("BdClients").Cells(p, Target.Row - adrnom.Row + 1)
= Target
End If
End Sub

merci beaucoup pour votre aide

Denis Levesque








Denis Levesque
Le #4812191
Bonjour Youky

Effectivement je n'avais pas recu ton dernier message

Et oui sa fonctionne enfin

Mais je me trouve pas mal dépendant de vous autre il y a surement un livre
assez complet que je pourrais prendre comme référence?

merci beaucoup pour ton aide et ton temps c'est vraiment apprécier

et aussi au autre qui m'on aidé Merci beaucoup

Denis

"Youky" news:
Salut Denis,
ceci fonctionne parfaitement.
Peut être n'avais-tu pas recu mon dernier message.
Youky

Private Sub Worksheet_Change(ByVal Target As Range)
Set adrnom = Worksheets("Facture").Range("B8")
If adrnom = "" Then
Application.EnableEvents = False
Sheets("Facture").Range("B9:B11").ClearContents
Application.EnableEvents = True
Exit Sub
End If
If Target.Address = adrnom.Address And Target.Count = 1 Then
Application.EnableEvents = False
If IsError(Application.Match(Target.Value, [ListeClients], 0)) Then
Sheets("BD").Range("A" & [BD!A65536].End(3).Row + 1) = Target.Value
Sheets("BD").Range("BdClients").Sort
key1:=Sheets("BD").Range("ListeClients")(1)
adrnom.Offset(1, 0).Resize(3, 1).ClearContents
Else
Target.Offset(1, 0) = Application.VLookup(Target.Value, [BdClients],
2, False)
Target.Offset(2, 0) = Application.VLookup(Target.Value, [BdClients],
3, False)
Target.Offset(3, 0) = Application.VLookup(Target.Value, [BdClients],
4, False)
End If
Application.EnableEvents = True
End If
If Not Intersect(adrnom.Offset(1, 0).Resize(3, 1), Target) Is Nothing And
Target.Count = 1 Then
p = Application.Match([adrnom], [ListeClients], 0)
Sheets("BD").Range("BdClients").Cells(p, Target.Row - adrnom.Row + 1)
= Target
End If
End Sub






jps
Le #4812181
je ne corrige pas le problème, seulement l'objet qui commençait à me
chatouiller
jps

"Denis Levesque"
Bonjour Philippe R

voici le fichier

http://cjoint.com/?ifscFgK5he

et la ligne qui bug

Sheets("BD").Range("ListeClients").End(xlDown).Offset(1, 0) = Target.Value

pour recréer cette erreur va dans l'onglet BD et efface les personnes qui
sont la

merci beaucoup pour ton aide

Denis

"Philippe.R" news:
Bonjour Denis,
Quelle est la ligne de code surlignée par le deboggueur ?
Tu pourrais peut être déposer un extrait du fichier sur cjoint (en ayant
retiré les données confidentielles), histoire qu'on puisse tester ?
--
Philippe.R
"Denis Levesque" news:er0%23$
Bonjour a tous

J'ai toujours le meme probleme avec mon menu déroulant

J'ai un onglet FACTURE et un onglet BD

L'onglet FACTURE contient la facture avec le menu déroulant
il me permet de sélectionné une personne et l'intégré dans ma facture ce
qui
est génial.
Il me permet aussi de rajouté des personnes.

dans l'onglet BD il y a les noms des personnes adresse etc.

si je modifie enleve toute les lignes ou enleve une ligne c'est la que
sa fonctionne plus lorsque j'essai de rajouter quelqu'un d'autre.

a: si j'enlève une ligne parce que la personne n'exite plus par la suite
quand j'essai de faire une nouvelle entrée je recoit un message d'erreur
1004
erreur d'exécution. et sa marche plus.

Je pense que je doit resetter une ou des variables mais je sais pas
comment faire.

voici le code

Private Sub Worksheet_Change(ByVal Target As Range)
Set adrnom = Worksheets("Facture").Range("B8")
If adrnom = "" Then
Application.EnableEvents = False
Sheets("Facture").Range("B9:B11").ClearContents
Application.EnableEvents = True
Exit Sub
End If
If Target.Address = adrnom.Address And Target.Count = 1 Then
Application.EnableEvents = False
If IsError(Application.Match(Target.Value, [ListeClients], 0)) Then
Sheets("BD").Range("ListeClients").End(xlDown).Offset(1, 0) =
Target.Value
Sheets("BD").Range("BdClients").Sort
key1:=Sheets("BD").Range("ListeClients")(1)
adrnom.Offset(1, 0).Resize(3, 1).ClearContents
Else
Target.Offset(1, 0) = Application.VLookup(Target.Value, [BdClients],
2, False)
Target.Offset(2, 0) = Application.VLookup(Target.Value, [BdClients],
3, False)
Target.Offset(3, 0) = Application.VLookup(Target.Value, [BdClients],
4, False)
End If
Application.EnableEvents = True
End If
If Not Intersect(adrnom.Offset(1, 0).Resize(3, 1), Target) Is Nothing
And Target.Count = 1 Then
p = Application.Match([adrnom], [ListeClients], 0)
Sheets("BD").Range("BdClients").Cells(p, Target.Row - adrnom.Row +
1) = Target
End If
End Sub

merci beaucoup pour votre aide

Denis Levesque












Philippe.R
Le #4812091
Re Denis,
Dans le lien, c'est ton adresse que tu as collé ; mais pas grave puisque si
j'ai bien suivi, tu as la solution par Youky.
--
Philippe.R
"Denis Levesque" news:
Bonjour Philippe R

voici le fichier

http://cjoint.com/?ifscFgK5he

et la ligne qui bug

Sheets("BD").Range("ListeClients").End(xlDown).Offset(1, 0) = Target.Value

pour recréer cette erreur va dans l'onglet BD et efface les personnes qui
sont la

merci beaucoup pour ton aide

Denis

"Philippe.R" news:
Bonjour Denis,
Quelle est la ligne de code surlignée par le deboggueur ?
Tu pourrais peut être déposer un extrait du fichier sur cjoint (en ayant
retiré les données confidentielles), histoire qu'on puisse tester ?
--
Philippe.R
"Denis Levesque" news:er0%23$
Bonjour a tous

J'ai toujours le meme probleme avec mon menu déroulant

J'ai un onglet FACTURE et un onglet BD

L'onglet FACTURE contient la facture avec le menu déroulant
il me permet de sélectionné une personne et l'intégré dans ma facture ce
qui
est génial.
Il me permet aussi de rajouté des personnes.

dans l'onglet BD il y a les noms des personnes adresse etc.

si je modifie enleve toute les lignes ou enleve une ligne c'est la que
sa fonctionne plus lorsque j'essai de rajouter quelqu'un d'autre.

a: si j'enlève une ligne parce que la personne n'exite plus par la suite
quand j'essai de faire une nouvelle entrée je recoit un message d'erreur
1004
erreur d'exécution. et sa marche plus.

Je pense que je doit resetter une ou des variables mais je sais pas
comment faire.

voici le code

Private Sub Worksheet_Change(ByVal Target As Range)
Set adrnom = Worksheets("Facture").Range("B8")
If adrnom = "" Then
Application.EnableEvents = False
Sheets("Facture").Range("B9:B11").ClearContents
Application.EnableEvents = True
Exit Sub
End If
If Target.Address = adrnom.Address And Target.Count = 1 Then
Application.EnableEvents = False
If IsError(Application.Match(Target.Value, [ListeClients], 0)) Then
Sheets("BD").Range("ListeClients").End(xlDown).Offset(1, 0) =
Target.Value
Sheets("BD").Range("BdClients").Sort
key1:=Sheets("BD").Range("ListeClients")(1)
adrnom.Offset(1, 0).Resize(3, 1).ClearContents
Else
Target.Offset(1, 0) = Application.VLookup(Target.Value, [BdClients],
2, False)
Target.Offset(2, 0) = Application.VLookup(Target.Value, [BdClients],
3, False)
Target.Offset(3, 0) = Application.VLookup(Target.Value, [BdClients],
4, False)
End If
Application.EnableEvents = True
End If
If Not Intersect(adrnom.Offset(1, 0).Resize(3, 1), Target) Is Nothing
And Target.Count = 1 Then
p = Application.Match([adrnom], [ListeClients], 0)
Sheets("BD").Range("BdClients").Cells(p, Target.Row - adrnom.Row +
1) = Target
End If
End Sub

merci beaucoup pour votre aide

Denis Levesque












Denis Levesque
Le #4811971
Salut Philippe

désolé j'ai fait une erreur

mais tu as raison mon problème est corriger

merci encore pour ton aide

Denis

"Philippe.R" news:%
Re Denis,
Dans le lien, c'est ton adresse que tu as collé ; mais pas grave puisque
si j'ai bien suivi, tu as la solution par Youky.
--
Philippe.R
"Denis Levesque" news:
Bonjour Philippe R

voici le fichier

http://cjoint.com/?ifscFgK5he

et la ligne qui bug

Sheets("BD").Range("ListeClients").End(xlDown).Offset(1, 0) =
Target.Value

pour recréer cette erreur va dans l'onglet BD et efface les personnes qui
sont la

merci beaucoup pour ton aide

Denis

"Philippe.R" news:
Bonjour Denis,
Quelle est la ligne de code surlignée par le deboggueur ?
Tu pourrais peut être déposer un extrait du fichier sur cjoint (en ayant
retiré les données confidentielles), histoire qu'on puisse tester ?
--
Philippe.R
"Denis Levesque" news:er0%23$
Bonjour a tous

J'ai toujours le meme probleme avec mon menu déroulant

J'ai un onglet FACTURE et un onglet BD

L'onglet FACTURE contient la facture avec le menu déroulant
il me permet de sélectionné une personne et l'intégré dans ma facture
ce qui
est génial.
Il me permet aussi de rajouté des personnes.

dans l'onglet BD il y a les noms des personnes adresse etc.

si je modifie enleve toute les lignes ou enleve une ligne c'est la que
sa fonctionne plus lorsque j'essai de rajouter quelqu'un d'autre.

a: si j'enlève une ligne parce que la personne n'exite plus par la
suite
quand j'essai de faire une nouvelle entrée je recoit un message
d'erreur
1004
erreur d'exécution. et sa marche plus.

Je pense que je doit resetter une ou des variables mais je sais pas
comment faire.

voici le code

Private Sub Worksheet_Change(ByVal Target As Range)
Set adrnom = Worksheets("Facture").Range("B8")
If adrnom = "" Then
Application.EnableEvents = False
Sheets("Facture").Range("B9:B11").ClearContents
Application.EnableEvents = True
Exit Sub
End If
If Target.Address = adrnom.Address And Target.Count = 1 Then
Application.EnableEvents = False
If IsError(Application.Match(Target.Value, [ListeClients], 0)) Then
Sheets("BD").Range("ListeClients").End(xlDown).Offset(1, 0) =
Target.Value
Sheets("BD").Range("BdClients").Sort
key1:=Sheets("BD").Range("ListeClients")(1)
adrnom.Offset(1, 0).Resize(3, 1).ClearContents
Else
Target.Offset(1, 0) = Application.VLookup(Target.Value,
[BdClients], 2, False)
Target.Offset(2, 0) = Application.VLookup(Target.Value,
[BdClients], 3, False)
Target.Offset(3, 0) = Application.VLookup(Target.Value,
[BdClients], 4, False)
End If
Application.EnableEvents = True
End If
If Not Intersect(adrnom.Offset(1, 0).Resize(3, 1), Target) Is Nothing
And Target.Count = 1 Then
p = Application.Match([adrnom], [ListeClients], 0)
Sheets("BD").Range("BdClients").Cells(p, Target.Row - adrnom.Row +
1) = Target
End If
End Sub

merci beaucoup pour votre aide

Denis Levesque
















Publicité
Poster une réponse
Anonyme