Réaffecter automatiqument des données issues de 2 feuilles...
6 réponses
Vincent J.
Bonjour,
Voila j'ai deus feuilles sur lesquels j'ai des données
La premiere feuille permet d'identifier des véhicules par un numéro:
A B
1 Nom Client
2 Nom Client2
3 Nom Client3
La deuxieme feuille permet de référencer les réparations éffectuée sur les
véhicules, sachant que pour un mail véhicule il peut y a voir plusieurs
lignes...
A B
1 Batterie
2 Lampes
2 Injecteur
3 Pneus
Comment faire pour que sur une 3° feuille, je puisse retrouver un tableau
qui compile automatiquement ces infos ensemble sous la forme:
A B C
1 Nom Client Batterie
2 Nom Client2 Lampes
3 Injecteur
4 Nom Client3 Pneus
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacky
Bonjour,
Ceci peur-être: La plage des numéros feuille1 nommée "Num" La Plage des numeros feuille2 nommée "Mat" '---------- Sub jj() Cells.ClearContents [a1] = "n°": [b1] = "Nom": [c1] = "Mat" x = 2 For Each c In Range("num") Range("a" & x) = c Range("b" & x) = c.Offset(0, 1) For Each m In Range("mat") If m = c Then Range("c" & x) = Sheets(2).Range("b" & m.Row) x = x + 1 End If Next x = x + 1 Next End Sub '----------- exemple ici: http://cjoint.com/?comjuVYTs4
-- Salutations JJ
"Vincent J." a écrit dans le message de news:
Bonjour,
Voila j'ai deus feuilles sur lesquels j'ai des données La premiere feuille permet d'identifier des véhicules par un numéro: A B 1 Nom Client 2 Nom Client2 3 Nom Client3
La deuxieme feuille permet de référencer les réparations éffectuée sur les véhicules, sachant que pour un mail véhicule il peut y a voir plusieurs lignes...
A B 1 Batterie 2 Lampes 2 Injecteur 3 Pneus
Comment faire pour que sur une 3° feuille, je puisse retrouver un tableau qui compile automatiquement ces infos ensemble sous la forme: A B C 1 Nom Client Batterie 2 Nom Client2 Lampes 3 Injecteur 4 Nom Client3 Pneus
Merci de votre aide... Vincent
Bonjour,
Ceci peur-être:
La plage des numéros feuille1 nommée "Num"
La Plage des numeros feuille2 nommée "Mat"
'----------
Sub jj()
Cells.ClearContents
[a1] = "n°": [b1] = "Nom": [c1] = "Mat"
x = 2
For Each c In Range("num")
Range("a" & x) = c
Range("b" & x) = c.Offset(0, 1)
For Each m In Range("mat")
If m = c Then
Range("c" & x) = Sheets(2).Range("b" & m.Row)
x = x + 1
End If
Next
x = x + 1
Next
End Sub
'-----------
exemple ici:
http://cjoint.com/?comjuVYTs4
--
Salutations
JJ
"Vincent J." <nospam@truc.fr> a écrit dans le message de news:
uteyqjBUHHA.4252@TK2MSFTNGP02.phx.gbl...
Bonjour,
Voila j'ai deus feuilles sur lesquels j'ai des données
La premiere feuille permet d'identifier des véhicules par un numéro:
A B
1 Nom Client
2 Nom Client2
3 Nom Client3
La deuxieme feuille permet de référencer les réparations éffectuée sur les
véhicules, sachant que pour un mail véhicule il peut y a voir plusieurs
lignes...
A B
1 Batterie
2 Lampes
2 Injecteur
3 Pneus
Comment faire pour que sur une 3° feuille, je puisse retrouver un tableau
qui compile automatiquement ces infos ensemble sous la forme:
A B C
1 Nom Client Batterie
2 Nom Client2 Lampes
3 Injecteur
4 Nom Client3 Pneus
Ceci peur-être: La plage des numéros feuille1 nommée "Num" La Plage des numeros feuille2 nommée "Mat" '---------- Sub jj() Cells.ClearContents [a1] = "n°": [b1] = "Nom": [c1] = "Mat" x = 2 For Each c In Range("num") Range("a" & x) = c Range("b" & x) = c.Offset(0, 1) For Each m In Range("mat") If m = c Then Range("c" & x) = Sheets(2).Range("b" & m.Row) x = x + 1 End If Next x = x + 1 Next End Sub '----------- exemple ici: http://cjoint.com/?comjuVYTs4
-- Salutations JJ
"Vincent J." a écrit dans le message de news:
Bonjour,
Voila j'ai deus feuilles sur lesquels j'ai des données La premiere feuille permet d'identifier des véhicules par un numéro: A B 1 Nom Client 2 Nom Client2 3 Nom Client3
La deuxieme feuille permet de référencer les réparations éffectuée sur les véhicules, sachant que pour un mail véhicule il peut y a voir plusieurs lignes...
A B 1 Batterie 2 Lampes 2 Injecteur 3 Pneus
Comment faire pour que sur une 3° feuille, je puisse retrouver un tableau qui compile automatiquement ces infos ensemble sous la forme: A B C 1 Nom Client Batterie 2 Nom Client2 Lampes 3 Injecteur 4 Nom Client3 Pneus
Merci de votre aide... Vincent
Vincent J.
Bonjour,
C'est super !
Par contre comme je ne connais pas du tous les macros, je vois sur la ligne suivante: Range("c" & x) = Sheets(2).Range("b" & m.Row) J'imagine que Sheets(2) correspond à la feuille2 du classeur. Si la feuille à été renommée et n'est pas en position 2 dans le classeur (exemple: Inter en position 4) , par quoi remplacer Sheets(2) ?
Merci !
Vincent
"Jacky" a écrit dans le message de news:
Bonjour,
Ceci peur-être: La plage des numéros feuille1 nommée "Num" La Plage des numeros feuille2 nommée "Mat" '---------- Sub jj() Cells.ClearContents [a1] = "n°": [b1] = "Nom": [c1] = "Mat" x = 2 For Each c In Range("num") Range("a" & x) = c Range("b" & x) = c.Offset(0, 1) For Each m In Range("mat") If m = c Then Range("c" & x) = Sheets(2).Range("b" & m.Row) x = x + 1 End If Next x = x + 1 Next End Sub '----------- exemple ici: http://cjoint.com/?comjuVYTs4
-- Salutations JJ
"Vincent J." a écrit dans le message de news:
Bonjour,
Voila j'ai deus feuilles sur lesquels j'ai des données La premiere feuille permet d'identifier des véhicules par un numéro: A B 1 Nom Client 2 Nom Client2 3 Nom Client3
La deuxieme feuille permet de référencer les réparations éffectuée sur les véhicules, sachant que pour un mail véhicule il peut y a voir plusieurs lignes...
A B 1 Batterie 2 Lampes 2 Injecteur 3 Pneus
Comment faire pour que sur une 3° feuille, je puisse retrouver un tableau qui compile automatiquement ces infos ensemble sous la forme: A B C 1 Nom Client Batterie 2 Nom Client2 Lampes 3 Injecteur 4 Nom Client3 Pneus
Merci de votre aide... Vincent
Bonjour,
C'est super !
Par contre comme je ne connais pas du tous les macros, je vois sur la ligne
suivante:
Range("c" & x) = Sheets(2).Range("b" & m.Row)
J'imagine que Sheets(2) correspond à la feuille2 du classeur.
Si la feuille à été renommée et n'est pas en position 2 dans le classeur
(exemple: Inter en position 4) , par quoi remplacer Sheets(2) ?
Merci !
Vincent
"Jacky" <Dupond@dupont.fr> a écrit dans le message de news:
e16PziCUHHA.1000@TK2MSFTNGP05.phx.gbl...
Bonjour,
Ceci peur-être:
La plage des numéros feuille1 nommée "Num"
La Plage des numeros feuille2 nommée "Mat"
'----------
Sub jj()
Cells.ClearContents
[a1] = "n°": [b1] = "Nom": [c1] = "Mat"
x = 2
For Each c In Range("num")
Range("a" & x) = c
Range("b" & x) = c.Offset(0, 1)
For Each m In Range("mat")
If m = c Then
Range("c" & x) = Sheets(2).Range("b" & m.Row)
x = x + 1
End If
Next
x = x + 1
Next
End Sub
'-----------
exemple ici:
http://cjoint.com/?comjuVYTs4
--
Salutations
JJ
"Vincent J." <nospam@truc.fr> a écrit dans le message de news:
uteyqjBUHHA.4252@TK2MSFTNGP02.phx.gbl...
Bonjour,
Voila j'ai deus feuilles sur lesquels j'ai des données
La premiere feuille permet d'identifier des véhicules par un numéro:
A B
1 Nom Client
2 Nom Client2
3 Nom Client3
La deuxieme feuille permet de référencer les réparations éffectuée sur
les véhicules, sachant que pour un mail véhicule il peut y a voir
plusieurs lignes...
A B
1 Batterie
2 Lampes
2 Injecteur
3 Pneus
Comment faire pour que sur une 3° feuille, je puisse retrouver un tableau
qui compile automatiquement ces infos ensemble sous la forme:
A B C
1 Nom Client Batterie
2 Nom Client2 Lampes
3 Injecteur
4 Nom Client3 Pneus
Par contre comme je ne connais pas du tous les macros, je vois sur la ligne suivante: Range("c" & x) = Sheets(2).Range("b" & m.Row) J'imagine que Sheets(2) correspond à la feuille2 du classeur. Si la feuille à été renommée et n'est pas en position 2 dans le classeur (exemple: Inter en position 4) , par quoi remplacer Sheets(2) ?
Merci !
Vincent
"Jacky" a écrit dans le message de news:
Bonjour,
Ceci peur-être: La plage des numéros feuille1 nommée "Num" La Plage des numeros feuille2 nommée "Mat" '---------- Sub jj() Cells.ClearContents [a1] = "n°": [b1] = "Nom": [c1] = "Mat" x = 2 For Each c In Range("num") Range("a" & x) = c Range("b" & x) = c.Offset(0, 1) For Each m In Range("mat") If m = c Then Range("c" & x) = Sheets(2).Range("b" & m.Row) x = x + 1 End If Next x = x + 1 Next End Sub '----------- exemple ici: http://cjoint.com/?comjuVYTs4
-- Salutations JJ
"Vincent J." a écrit dans le message de news:
Bonjour,
Voila j'ai deus feuilles sur lesquels j'ai des données La premiere feuille permet d'identifier des véhicules par un numéro: A B 1 Nom Client 2 Nom Client2 3 Nom Client3
La deuxieme feuille permet de référencer les réparations éffectuée sur les véhicules, sachant que pour un mail véhicule il peut y a voir plusieurs lignes...
A B 1 Batterie 2 Lampes 2 Injecteur 3 Pneus
Comment faire pour que sur une 3° feuille, je puisse retrouver un tableau qui compile automatiquement ces infos ensemble sous la forme: A B C 1 Nom Client Batterie 2 Nom Client2 Lampes 3 Injecteur 4 Nom Client3 Pneus
Merci de votre aide... Vincent
Jacky
Re... Alt+F11 Dans la fenêtre VbaProject (en haut à gauche) Tu dois avoir quelque chose qui ressemble à ceci *Feuil1(feuil1) ou Feuil1(le nom que tu as donné à la feuille 1) *Feuil2(feuil2) ou Feuil2(le nom que tu as donné à la feuille 2) etc... Tu prends le n° de la feuille correspondant au nom que tu lui as donné Ceci a comme avantage de garde 'toujours' la bonne feuille, même si son nom est changée.
Le code peut être remplacé par: Range("c" & x) = Sheets("NomDeLa feuille").Range("b" & m.Row) Mais le code doit être modifié si un utilisateur change le nom de la feuille -- Salutations JJ
"Vincent J." a écrit dans le message de news:
Bonjour,
C'est super !
Par contre comme je ne connais pas du tous les macros, je vois sur la ligne suivante: Range("c" & x) = Sheets(2).Range("b" & m.Row) J'imagine que Sheets(2) correspond à la feuille2 du classeur. Si la feuille à été renommée et n'est pas en position 2 dans le classeur (exemple: Inter en position 4) , par quoi remplacer Sheets(2) ?
Merci !
Vincent
"Jacky" a écrit dans le message de news:
Bonjour,
Ceci peur-être: La plage des numéros feuille1 nommée "Num" La Plage des numeros feuille2 nommée "Mat" '---------- Sub jj() Cells.ClearContents [a1] = "n°": [b1] = "Nom": [c1] = "Mat" x = 2 For Each c In Range("num") Range("a" & x) = c Range("b" & x) = c.Offset(0, 1) For Each m In Range("mat") If m = c Then Range("c" & x) = Sheets(2).Range("b" & m.Row) x = x + 1 End If Next x = x + 1 Next End Sub '----------- exemple ici: http://cjoint.com/?comjuVYTs4
-- Salutations JJ
"Vincent J." a écrit dans le message de news:
Bonjour,
Voila j'ai deus feuilles sur lesquels j'ai des données La premiere feuille permet d'identifier des véhicules par un numéro: A B 1 Nom Client 2 Nom Client2 3 Nom Client3
La deuxieme feuille permet de référencer les réparations éffectuée sur les véhicules, sachant que pour un mail véhicule il peut y a voir plusieurs lignes...
A B 1 Batterie 2 Lampes 2 Injecteur 3 Pneus
Comment faire pour que sur une 3° feuille, je puisse retrouver un tableau qui compile automatiquement ces infos ensemble sous la forme: A B C 1 Nom Client Batterie 2 Nom Client2 Lampes 3 Injecteur 4 Nom Client3 Pneus
Merci de votre aide... Vincent
Re...
Alt+F11
Dans la fenêtre VbaProject (en haut à gauche)
Tu dois avoir quelque chose qui ressemble à ceci
*Feuil1(feuil1) ou Feuil1(le nom que tu as donné à la feuille 1)
*Feuil2(feuil2) ou Feuil2(le nom que tu as donné à la feuille 2)
etc...
Tu prends le n° de la feuille correspondant au nom que tu lui as donné
Ceci a comme avantage de garde 'toujours' la bonne feuille, même si son nom
est changée.
Le code peut être remplacé par:
Range("c" & x) = Sheets("NomDeLa feuille").Range("b" & m.Row)
Mais le code doit être modifié si un utilisateur change le nom de la feuille
--
Salutations
JJ
"Vincent J." <nospam@truc.fr> a écrit dans le message de news:
u7N66zFUHHA.4260@TK2MSFTNGP06.phx.gbl...
Bonjour,
C'est super !
Par contre comme je ne connais pas du tous les macros, je vois sur la
ligne suivante:
Range("c" & x) = Sheets(2).Range("b" & m.Row)
J'imagine que Sheets(2) correspond à la feuille2 du classeur.
Si la feuille à été renommée et n'est pas en position 2 dans le classeur
(exemple: Inter en position 4) , par quoi remplacer Sheets(2) ?
Merci !
Vincent
"Jacky" <Dupond@dupont.fr> a écrit dans le message de news:
e16PziCUHHA.1000@TK2MSFTNGP05.phx.gbl...
Bonjour,
Ceci peur-être:
La plage des numéros feuille1 nommée "Num"
La Plage des numeros feuille2 nommée "Mat"
'----------
Sub jj()
Cells.ClearContents
[a1] = "n°": [b1] = "Nom": [c1] = "Mat"
x = 2
For Each c In Range("num")
Range("a" & x) = c
Range("b" & x) = c.Offset(0, 1)
For Each m In Range("mat")
If m = c Then
Range("c" & x) = Sheets(2).Range("b" & m.Row)
x = x + 1
End If
Next
x = x + 1
Next
End Sub
'-----------
exemple ici:
http://cjoint.com/?comjuVYTs4
--
Salutations
JJ
"Vincent J." <nospam@truc.fr> a écrit dans le message de news:
uteyqjBUHHA.4252@TK2MSFTNGP02.phx.gbl...
Bonjour,
Voila j'ai deus feuilles sur lesquels j'ai des données
La premiere feuille permet d'identifier des véhicules par un numéro:
A B
1 Nom Client
2 Nom Client2
3 Nom Client3
La deuxieme feuille permet de référencer les réparations éffectuée sur
les véhicules, sachant que pour un mail véhicule il peut y a voir
plusieurs lignes...
A B
1 Batterie
2 Lampes
2 Injecteur
3 Pneus
Comment faire pour que sur une 3° feuille, je puisse retrouver un
tableau qui compile automatiquement ces infos ensemble sous la forme:
A B C
1 Nom Client Batterie
2 Nom Client2 Lampes
3 Injecteur
4 Nom Client3 Pneus
Re... Alt+F11 Dans la fenêtre VbaProject (en haut à gauche) Tu dois avoir quelque chose qui ressemble à ceci *Feuil1(feuil1) ou Feuil1(le nom que tu as donné à la feuille 1) *Feuil2(feuil2) ou Feuil2(le nom que tu as donné à la feuille 2) etc... Tu prends le n° de la feuille correspondant au nom que tu lui as donné Ceci a comme avantage de garde 'toujours' la bonne feuille, même si son nom est changée.
Le code peut être remplacé par: Range("c" & x) = Sheets("NomDeLa feuille").Range("b" & m.Row) Mais le code doit être modifié si un utilisateur change le nom de la feuille -- Salutations JJ
"Vincent J." a écrit dans le message de news:
Bonjour,
C'est super !
Par contre comme je ne connais pas du tous les macros, je vois sur la ligne suivante: Range("c" & x) = Sheets(2).Range("b" & m.Row) J'imagine que Sheets(2) correspond à la feuille2 du classeur. Si la feuille à été renommée et n'est pas en position 2 dans le classeur (exemple: Inter en position 4) , par quoi remplacer Sheets(2) ?
Merci !
Vincent
"Jacky" a écrit dans le message de news:
Bonjour,
Ceci peur-être: La plage des numéros feuille1 nommée "Num" La Plage des numeros feuille2 nommée "Mat" '---------- Sub jj() Cells.ClearContents [a1] = "n°": [b1] = "Nom": [c1] = "Mat" x = 2 For Each c In Range("num") Range("a" & x) = c Range("b" & x) = c.Offset(0, 1) For Each m In Range("mat") If m = c Then Range("c" & x) = Sheets(2).Range("b" & m.Row) x = x + 1 End If Next x = x + 1 Next End Sub '----------- exemple ici: http://cjoint.com/?comjuVYTs4
-- Salutations JJ
"Vincent J." a écrit dans le message de news:
Bonjour,
Voila j'ai deus feuilles sur lesquels j'ai des données La premiere feuille permet d'identifier des véhicules par un numéro: A B 1 Nom Client 2 Nom Client2 3 Nom Client3
La deuxieme feuille permet de référencer les réparations éffectuée sur les véhicules, sachant que pour un mail véhicule il peut y a voir plusieurs lignes...
A B 1 Batterie 2 Lampes 2 Injecteur 3 Pneus
Comment faire pour que sur une 3° feuille, je puisse retrouver un tableau qui compile automatiquement ces infos ensemble sous la forme: A B C 1 Nom Client Batterie 2 Nom Client2 Lampes 3 Injecteur 4 Nom Client3 Pneus
Merci de votre aide... Vincent
Jacky
Re.... Complément...... En donnant directement le" nom Vba" de la feuille, ni sa position ni le changement de nom n'affecteront le code. Tu trouves devant le nom entre parenthèse Dans ton exemple Feuil1= la feuille avec les N° et les noms Feuil2= la feuille avec le n° et les accessoires Feuil3= la feuille des résultats Ce qui donne dans la code: '--------------- Sub jj() Feuil3.Cells.ClearContents Feuil3.[a1] = "n°": Feuil3.[b1] = "Nom": Feuil3.[c1] = "Mat" x = 2 For Each c In Range("num") Feuil3.Range("a" & x) = c Feuil3.Range("b" & x) = c.Offset(0, 1) For Each m In Range("mat") If m = c Then Feuil3.Range("c" & x) = Feuil2.Range("b" & m.Row) x = x + 1 End If Next x = x + 1 Next End Sub '----------
-- Salutations JJ
"Vincent J." a écrit dans le message de news:
Bonjour,
C'est super !
Par contre comme je ne connais pas du tous les macros, je vois sur la ligne suivante: Range("c" & x) = Sheets(2).Range("b" & m.Row) J'imagine que Sheets(2) correspond à la feuille2 du classeur. Si la feuille à été renommée et n'est pas en position 2 dans le classeur (exemple: Inter en position 4) , par quoi remplacer Sheets(2) ?
Merci !
Vincent
"Jacky" a écrit dans le message de news:
Bonjour,
Ceci peur-être: La plage des numéros feuille1 nommée "Num" La Plage des numeros feuille2 nommée "Mat" '---------- Sub jj() Cells.ClearContents [a1] = "n°": [b1] = "Nom": [c1] = "Mat" x = 2 For Each c In Range("num") Range("a" & x) = c Range("b" & x) = c.Offset(0, 1) For Each m In Range("mat") If m = c Then Range("c" & x) = Sheets(2).Range("b" & m.Row) x = x + 1 End If Next x = x + 1 Next End Sub '----------- exemple ici: http://cjoint.com/?comjuVYTs4
-- Salutations JJ
"Vincent J." a écrit dans le message de news:
Bonjour,
Voila j'ai deus feuilles sur lesquels j'ai des données La premiere feuille permet d'identifier des véhicules par un numéro: A B 1 Nom Client 2 Nom Client2 3 Nom Client3
La deuxieme feuille permet de référencer les réparations éffectuée sur les véhicules, sachant que pour un mail véhicule il peut y a voir plusieurs lignes...
A B 1 Batterie 2 Lampes 2 Injecteur 3 Pneus
Comment faire pour que sur une 3° feuille, je puisse retrouver un tableau qui compile automatiquement ces infos ensemble sous la forme: A B C 1 Nom Client Batterie 2 Nom Client2 Lampes 3 Injecteur 4 Nom Client3 Pneus
Merci de votre aide... Vincent
Re....
Complément......
En donnant directement le" nom Vba" de la feuille, ni sa position ni le
changement de nom n'affecteront le code.
Tu trouves devant le nom entre parenthèse
Dans ton exemple
Feuil1= la feuille avec les N° et les noms
Feuil2= la feuille avec le n° et les accessoires
Feuil3= la feuille des résultats
Ce qui donne dans la code:
'---------------
Sub jj()
Feuil3.Cells.ClearContents
Feuil3.[a1] = "n°": Feuil3.[b1] = "Nom": Feuil3.[c1] = "Mat"
x = 2
For Each c In Range("num")
Feuil3.Range("a" & x) = c
Feuil3.Range("b" & x) = c.Offset(0, 1)
For Each m In Range("mat")
If m = c Then
Feuil3.Range("c" & x) = Feuil2.Range("b" & m.Row)
x = x + 1
End If
Next
x = x + 1
Next
End Sub
'----------
--
Salutations
JJ
"Vincent J." <nospam@truc.fr> a écrit dans le message de news:
u7N66zFUHHA.4260@TK2MSFTNGP06.phx.gbl...
Bonjour,
C'est super !
Par contre comme je ne connais pas du tous les macros, je vois sur la
ligne suivante:
Range("c" & x) = Sheets(2).Range("b" & m.Row)
J'imagine que Sheets(2) correspond à la feuille2 du classeur.
Si la feuille à été renommée et n'est pas en position 2 dans le classeur
(exemple: Inter en position 4) , par quoi remplacer Sheets(2) ?
Merci !
Vincent
"Jacky" <Dupond@dupont.fr> a écrit dans le message de news:
e16PziCUHHA.1000@TK2MSFTNGP05.phx.gbl...
Bonjour,
Ceci peur-être:
La plage des numéros feuille1 nommée "Num"
La Plage des numeros feuille2 nommée "Mat"
'----------
Sub jj()
Cells.ClearContents
[a1] = "n°": [b1] = "Nom": [c1] = "Mat"
x = 2
For Each c In Range("num")
Range("a" & x) = c
Range("b" & x) = c.Offset(0, 1)
For Each m In Range("mat")
If m = c Then
Range("c" & x) = Sheets(2).Range("b" & m.Row)
x = x + 1
End If
Next
x = x + 1
Next
End Sub
'-----------
exemple ici:
http://cjoint.com/?comjuVYTs4
--
Salutations
JJ
"Vincent J." <nospam@truc.fr> a écrit dans le message de news:
uteyqjBUHHA.4252@TK2MSFTNGP02.phx.gbl...
Bonjour,
Voila j'ai deus feuilles sur lesquels j'ai des données
La premiere feuille permet d'identifier des véhicules par un numéro:
A B
1 Nom Client
2 Nom Client2
3 Nom Client3
La deuxieme feuille permet de référencer les réparations éffectuée sur
les véhicules, sachant que pour un mail véhicule il peut y a voir
plusieurs lignes...
A B
1 Batterie
2 Lampes
2 Injecteur
3 Pneus
Comment faire pour que sur une 3° feuille, je puisse retrouver un
tableau qui compile automatiquement ces infos ensemble sous la forme:
A B C
1 Nom Client Batterie
2 Nom Client2 Lampes
3 Injecteur
4 Nom Client3 Pneus
Re.... Complément...... En donnant directement le" nom Vba" de la feuille, ni sa position ni le changement de nom n'affecteront le code. Tu trouves devant le nom entre parenthèse Dans ton exemple Feuil1= la feuille avec les N° et les noms Feuil2= la feuille avec le n° et les accessoires Feuil3= la feuille des résultats Ce qui donne dans la code: '--------------- Sub jj() Feuil3.Cells.ClearContents Feuil3.[a1] = "n°": Feuil3.[b1] = "Nom": Feuil3.[c1] = "Mat" x = 2 For Each c In Range("num") Feuil3.Range("a" & x) = c Feuil3.Range("b" & x) = c.Offset(0, 1) For Each m In Range("mat") If m = c Then Feuil3.Range("c" & x) = Feuil2.Range("b" & m.Row) x = x + 1 End If Next x = x + 1 Next End Sub '----------
-- Salutations JJ
"Vincent J." a écrit dans le message de news:
Bonjour,
C'est super !
Par contre comme je ne connais pas du tous les macros, je vois sur la ligne suivante: Range("c" & x) = Sheets(2).Range("b" & m.Row) J'imagine que Sheets(2) correspond à la feuille2 du classeur. Si la feuille à été renommée et n'est pas en position 2 dans le classeur (exemple: Inter en position 4) , par quoi remplacer Sheets(2) ?
Merci !
Vincent
"Jacky" a écrit dans le message de news:
Bonjour,
Ceci peur-être: La plage des numéros feuille1 nommée "Num" La Plage des numeros feuille2 nommée "Mat" '---------- Sub jj() Cells.ClearContents [a1] = "n°": [b1] = "Nom": [c1] = "Mat" x = 2 For Each c In Range("num") Range("a" & x) = c Range("b" & x) = c.Offset(0, 1) For Each m In Range("mat") If m = c Then Range("c" & x) = Sheets(2).Range("b" & m.Row) x = x + 1 End If Next x = x + 1 Next End Sub '----------- exemple ici: http://cjoint.com/?comjuVYTs4
-- Salutations JJ
"Vincent J." a écrit dans le message de news:
Bonjour,
Voila j'ai deus feuilles sur lesquels j'ai des données La premiere feuille permet d'identifier des véhicules par un numéro: A B 1 Nom Client 2 Nom Client2 3 Nom Client3
La deuxieme feuille permet de référencer les réparations éffectuée sur les véhicules, sachant que pour un mail véhicule il peut y a voir plusieurs lignes...
A B 1 Batterie 2 Lampes 2 Injecteur 3 Pneus
Comment faire pour que sur une 3° feuille, je puisse retrouver un tableau qui compile automatiquement ces infos ensemble sous la forme: A B C 1 Nom Client Batterie 2 Nom Client2 Lampes 3 Injecteur 4 Nom Client3 Pneus