Macro "nom aùbigu détecté"

c.the

XLDnaute Nouveau
Bonjour,

Je vous soumet encore une fois un problème que je rencontre.

J'ai une première macro qui me permet d'aller chercher des infos dans une feuille et qui va les coller dans un tableau de synthèse.

Private Sub Worksheet_Change(ByVal Target As Range)
With Sheets("Synthèse")
L = Application.Match([c10], .[a:a], 0)
'---mise à jour de la feuille Fiche Achat---
Set Target = Intersect(Target, [c10])
If Not Target Is Nothing Then
Application.EnableEvents = False
If IsError(L) Then
Range("c11:c13,k16,c16,c21,c20,l21,l20,a24") = ""
Else
[c10] = .Range("a" & L)
[c12] = .Range("b" & L)
[c13] = .Range("c" & L)
[k16] = .Range("d" & L)
[c16] = .Range("e" & L)
[c21] = .Range("f" & L)
[c20] = .Range("g" & L)
[l21] = .Range("h" & L)
[l20] = .Range("i" & L)
[a24] = .Range("j" & L)
[o24] = .Range("k" & L)
[j24] = .Range("l" & L)
End If
Application.EnableEvents = True
End If
'---mise à jour de la feuille Synthèse---
If IsError(L) Then L = .[a65536].End(xlUp).Row + 1
If L = 2 Then Exit Sub
.Range("a" & L) = [c10]
.Range("b" & L) = [c12]
.Range("c" & L) = [c13]
.Range("d" & L) = [k16]
.Range("e" & L) = [c16]
.Range("f" & L) = [c21]
.Range("g" & L) = [c20]
.Range("h" & L) = [l21]
.Range("i" & L) = [l20]
.Range("j" & L) = [a24]
.Range("k" & L) = [o24]
.Range("l" & L) = [j24]
End With
End Sub

Et j'aimerais mettre sur la MEMEfeuille une deuxième macro qui permet d'aller chercher des infos sur cette feuille et les mettre dans un deuxième tableau de synthèse. J'ai essayé ça

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Sheets("PEDIDOS FRS TIERS")
L = Application.Match([c10], .[a:a], 0)
'---mise à jour de la feuille Fiche Achat---
Set Target = Intersect(Target, [c10])
If Not Target Is Nothing Then
Application.EnableEvents = False
If IsError(L) Then
Range("c11:c13,k16,c16,c21,c20,l21,l20,a24") = ""
Else
[c11] = .Range("a" & L)
[c10] = .Range("b" & L)
[c9] = .Range("c" & L)
[k16] = .Range("d" & L)
[l17] = .Range("e" & L)
[b30] = .Range("f" & L)
[d30] = .Range("g" & L)
[n30] = .Range("h" & L)
[p30] = .Range("i" & L)
[r30] = .Range("j" & L)
[h20] = .Range("k" & L)
[h21] = .Range("n" & L)
[c12] = .Range("o" & L)
End If
Application.EnableEvents = True
End If
'---mise à jour de la feuille Synthèse---
If IsError(L) Then L = .[a65536].End(xlUp).Row + 1
If L = 2 Then Exit Sub

.Range("a" & L) = [c11]
.Range("b" & L) = [c10]
.Range("c" & L) = [c9]
.Range("d" & L) = [k16]
.Range("e" & L) = [l17]
.Range("f" & L) = [b30]
.Range("g" & L) = [d30]
.Range("h" & L) = [n30]
.Range("i" & L) = [p30]
.Range("j" & L) = [r30]
.Range("k" & L) = [h20]
.Range("n" & L) = [h21]
.Range("o" & L) = [c12]
End With
End Sub


J'ai rajouter Selection dans le nom de la macro pour ne pas avoir l'erreur "nom ambigu détecté" seulement quand des modifications sont effectuées sur la page de départ, cela créer plusieurs fois la ligne dans le deuxième tableau de synthèse. Ce n'était peut être pas la bonne solution de rajouter Selection devant Change(ByVal Target As Range)

M%erci pour votre aide
 

Pierrot93

XLDnaute Barbatruc
Re : Macro "nom aùbigu détecté"

Bonjour,

ta procédure "SelectionChange" se déclenche à chaque nouvelle selection sur la feuille dans laquelle se trouve le code... la procédure "change" se déclenche lors de chaque modification sur la feuille, se ne sont pas les mêmes événements...

bon après midi
@+
 

c.the

XLDnaute Nouveau
Re : Macro "nom aùbigu détecté"

Merci, je comprends mieux pourquoi cela crée une ligne à chaque fois. Comment est ce que je peux faire du coup pour avoir ces deux macros en même temps sur la même feuille?

Je vous mets un dossier exemple.
 

Pièces jointes

  • exemple internet.zip
    35.2 KB · Affichages: 32
  • exemple internet.zip
    35.2 KB · Affichages: 30
  • exemple internet.zip
    35.2 KB · Affichages: 31

c.the

XLDnaute Nouveau
Re : Macro "nom aùbigu détecté"

Je cherche à ce que certaine information de la feuille fournisseur viennent s'inscrire sur le tableau de synthèse et sur le tableau pedido.

Pour ce qui est du tableau de synthèse, la macro fonctionne. j'ai voulu la copier pour que ça fasse la même chose pour le tableau pedido, seulement cela me met Erreur : nom ambigu détecté : Worksheet_change. Je comprends pourquoi ce message s'affiche mais je ne sais pas comment le résoudre. J'ai essayé en mettant Worksheet_selectionchange mais cela ne fonctionne puisque comme tu me l'a dis à chaque fois à chaque fois qu'il y aura une modification faite sur la feuille cela créera une nouvelle ligne. Je souhaite que la ligne se crée une première fois quand le numéro de pedido est rentré et qu'elle se mette ensuite à jour et pas qu'une nouvelle soit créée. Je ne sais pas si j'ai été assez claire. Désolé si ce n'est pas le cas

Merci d'avance pour ton aide.
 

kjin

XLDnaute Barbatruc
Re : Macro "nom aùbigu détecté"

Bonjour,
Je cherche à ce que certaine information de la feuille fournisseur viennent s'inscrire sur le tableau de synthèse et sur le tableau pedido.
Je n'y comprends toujours rien ! Pourquoi rapatrier les données de la feuille synthèse dans la feuille fournisseur alors ?!
Néanmoins, il suffit de mettre les 2 procédures, l'une à la suite de l'autre, non ?!
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$C$10" And Target.Value <> "" Then
    '---mise à jour de la feuille Synthèse---
    With Sheets("Synthèse")
        L = Application.Match(Target.Value, .[a:a], 0)
        If IsError(L) Then L = .[a65536].End(xlUp).Row + 1
        .Range("a" & L) = [c10]
        .Range("b" & L) = [c12]
        .Range("c" & L) = [c13]
        .Range("d" & L) = [k16]
        .Range("e" & L) = [c16]
        .Range("f" & L) = [c21]
        .Range("g" & L) = [c20]
        .Range("h" & L) = [l21]
        .Range("i" & L) = [l20]
        .Range("j" & L) = [a24]
        .Range("k" & L) = [o24]
        .Range("l" & L) = [j24]
    End With
    '---mise à jour de la feuille PEDIDOS FRS TIERS---
    With Sheets("PEDIDOS FRS TIERS")
        L = Application.Match(Target.Value, .[a:a], 0)
        If IsError(L) Then L = .[a65536].End(xlUp).Row + 1
        .Range("a" & L) = [c11]
        .Range("b" & L) = [c10]
        .Range("c" & L) = [c9]
        .Range("d" & L) = [k16]
        .Range("e" & L) = [l17]
        .Range("f" & L) = [b30]
        .Range("g" & L) = [d30]
        .Range("h" & L) = [n30]
        .Range("i" & L) = [p30]
        .Range("j" & L) = [r30]
        .Range("k" & L) = [h20]
        .Range("n" & L) = [h21]
        .Range("o" & L) = [c12]
    End With
End If
End Sub
 

c.the

XLDnaute Nouveau
Re : Macro "nom aùbigu détecté"

C'est pour que quand des modifications sont faites ultérieurement sur la feuille frs ça mette à jour la feuille synthèse.

Ta macro marche très bien merci sauf que une fois que la ligne est créée dans la ligne synthèse elle ne se mettre pas à jour si par exemple la date est modifiée.

J'essaie de toruver quelque chose qui marche en rassemblant les deux macros comme tu l'as fait mais ça ne marche pas :s Je ne suis vraiment pas douée.
 

Discussions similaires

Réponses
2
Affichages
523
Réponses
7
Affichages
355

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 413
Messages
2 088 199
Membres
103 763
dernier inscrit
p.michaux