Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mon probleme n'est toujours pas corriger

8 réponses
Avatar
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

8 réponses

Avatar
Philippe.R
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" a écrit dans le message de
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




Avatar
Youky
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
Avatar
Youky
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
Avatar
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" <AS_rauphil_at_wanadoo.fr> wrote in message
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" a écrit dans le message de
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








Avatar
Denis Levesque
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" wrote in message
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






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

"Denis Levesque" a écrit dans le message de 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" <AS_rauphil_at_wanadoo.fr> wrote in message
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" a écrit dans le message de
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












Avatar
Philippe.R
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" a écrit dans le message de
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" <AS_rauphil_at_wanadoo.fr> wrote in message
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" a écrit dans le message de
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












Avatar
Denis Levesque
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" <AS_rauphil_at_wanadoo.fr> wrote in message
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" a écrit dans le message de
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" <AS_rauphil_at_wanadoo.fr> wrote in message
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" a écrit dans le message de
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