Bonsoir à tous,
Voici mon problème. J'ai une base de données que j'essaye de lier à un bon
de commande. Dans la base, je voudrais, lorsque je mets une croix (par
exemple) dans une colonne, que l'ensemble des données de la ligne
correespondante soit recopiées dans le bon de commande. La difficulté c'est
que chaque donnée (nom, prenom, adresse ....) doit être recopiée dans une
cellule bien precise et qu'une cellule doit pouvoir contenir sucessivement
diverses données.
J'espère que je suis claire mais un exemple s'impose surement.
Si la colonne 1 comprend les noms : A1 = Dupond, A2 = Durand et B doit
recevoir des croix. Si B1="x" alors Dupond doit être recopié dans la cellule
A1 de la feuil2. Par contre, si B2="X" (et donc B1="") alors Durand doit être
recopié en A1Feuil2.
Quelle formule dois je utiliser?
Merci pour vos lumières.
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
Daniel
Bonsoir. Si j'ai bien compris, essaie : =INDEX(Feuil1!A1:A100;EQUIV("x";Feuil1!B1:B100;0);1) Cordialement. Daniel "Céline06" a écrit dans le message de news:
Bonsoir à tous, Voici mon problème. J'ai une base de données que j'essaye de lier à un bon de commande. Dans la base, je voudrais, lorsque je mets une croix (par exemple) dans une colonne, que l'ensemble des données de la ligne correespondante soit recopiées dans le bon de commande. La difficulté c'est que chaque donnée (nom, prenom, adresse ....) doit être recopiée dans une cellule bien precise et qu'une cellule doit pouvoir contenir sucessivement diverses données. J'espère que je suis claire mais un exemple s'impose surement. Si la colonne 1 comprend les noms : A1 = Dupond, A2 = Durand et B doit recevoir des croix. Si B1="x" alors Dupond doit être recopié dans la cellule A1 de la feuil2. Par contre, si B2="X" (et donc B1="") alors Durand doit être recopié en A1Feuil2. Quelle formule dois je utiliser? Merci pour vos lumières.
Bonsoir.
Si j'ai bien compris, essaie :
=INDEX(Feuil1!A1:A100;EQUIV("x";Feuil1!B1:B100;0);1)
Cordialement.
Daniel
"Céline06" <Cline06@discussions.microsoft.com> a écrit dans le message de
news: 798A2FD8-7761-46B2-8B3B-B9E2E0206711@microsoft.com...
Bonsoir à tous,
Voici mon problème. J'ai une base de données que j'essaye de lier à un bon
de commande. Dans la base, je voudrais, lorsque je mets une croix (par
exemple) dans une colonne, que l'ensemble des données de la ligne
correespondante soit recopiées dans le bon de commande. La difficulté
c'est
que chaque donnée (nom, prenom, adresse ....) doit être recopiée dans une
cellule bien precise et qu'une cellule doit pouvoir contenir sucessivement
diverses données.
J'espère que je suis claire mais un exemple s'impose surement.
Si la colonne 1 comprend les noms : A1 = Dupond, A2 = Durand et B doit
recevoir des croix. Si B1="x" alors Dupond doit être recopié dans la
cellule
A1 de la feuil2. Par contre, si B2="X" (et donc B1="") alors Durand doit
être
recopié en A1Feuil2.
Quelle formule dois je utiliser?
Merci pour vos lumières.
Bonsoir. Si j'ai bien compris, essaie : =INDEX(Feuil1!A1:A100;EQUIV("x";Feuil1!B1:B100;0);1) Cordialement. Daniel "Céline06" a écrit dans le message de news:
Bonsoir à tous, Voici mon problème. J'ai une base de données que j'essaye de lier à un bon de commande. Dans la base, je voudrais, lorsque je mets une croix (par exemple) dans une colonne, que l'ensemble des données de la ligne correespondante soit recopiées dans le bon de commande. La difficulté c'est que chaque donnée (nom, prenom, adresse ....) doit être recopiée dans une cellule bien precise et qu'une cellule doit pouvoir contenir sucessivement diverses données. J'espère que je suis claire mais un exemple s'impose surement. Si la colonne 1 comprend les noms : A1 = Dupond, A2 = Durand et B doit recevoir des croix. Si B1="x" alors Dupond doit être recopié dans la cellule A1 de la feuil2. Par contre, si B2="X" (et donc B1="") alors Durand doit être recopié en A1Feuil2. Quelle formule dois je utiliser? Merci pour vos lumières.
GVentre
Bonjour Céline06,
Je ne suis pas sûr d'avoir très bien compris la question mais essai ceci:
Sub CopieDonnee()
Dim Cell, MaPlageX As Range Set MaPlageX = Range("C1:C10") 'à adpater
For Each Cell In MaPlageX If Cell = "x" Then Cell.Offset(0, 2) = Cell.Offset(0, -2) Cell.Offset(0, 3) = Cell.Offset(0, -1) End If Next
End Sub
Cela recopie les données de An et Bn, en Dn et En, si en Cn tu as "x" où n est le numéro de ligne. Si j'ai mal compris, je peux adapter.
Cordialement,
GVentre
Merci, c'est tout a fait ca que je cherchais. Par contre, j'avais pensé egalement a faire la même chose par le biais d'une macro et j'ai tenté d'en mettre une au point. Ca donne ca (ne faites pas attention aux coordonnées des cellules qui n'ont plus rien a voir avec mon exemple precedent): If Range("C2") = "x" Then Range("A2").Select Selection.Copy Range("E1").Select ActiveSheet.Paste Range("B2").Select Application.CutCopyMode = False Selection.Copy Range("E2").Select ActiveSheet.Paste Application.CutCopyMode = False End If If Range("C3") = "x" Then Range("A3").Select Selection.Copy Range("E1").Select ActiveSheet.Paste Range("B3").Select Application.CutCopyMode = False Selection.Copy Range("E2").Select ActiveSheet.Paste Application.CutCopyMode = False End If End Sub Je l'ai faite pour la recopie de 2 lignes 1 et 2 des colonnes A et B et je me demandais comment faire pour faire la même chose avec un nombre étendu de lignes et de colonne (en faite au lieu de mettre des coordonnées precises comme A1 ou A2, je voudrais pouvoir dire "si dans la colonne "C" il y a "x" alors tu recopie la ligne qui est devant). Merci
Bonjour Céline06,
Je ne suis pas sûr d'avoir très bien compris la question mais essai ceci:
Sub CopieDonnee()
Dim Cell, MaPlageX As Range
Set MaPlageX = Range("C1:C10") 'à adpater
For Each Cell In MaPlageX
If Cell = "x" Then
Cell.Offset(0, 2) = Cell.Offset(0, -2)
Cell.Offset(0, 3) = Cell.Offset(0, -1)
End If
Next
End Sub
Cela recopie les données de An et Bn, en Dn et En, si en Cn tu as "x" où
n est le numéro de ligne.
Si j'ai mal compris, je peux adapter.
Cordialement,
GVentre
Merci, c'est tout a fait ca que je cherchais.
Par contre, j'avais pensé egalement a faire la même chose par le biais d'une
macro et j'ai tenté d'en mettre une au point.
Ca donne ca (ne faites pas attention aux coordonnées des cellules qui n'ont
plus rien a voir avec mon exemple precedent):
If Range("C2") = "x" Then
Range("A2").Select
Selection.Copy
Range("E1").Select
ActiveSheet.Paste
Range("B2").Select
Application.CutCopyMode = False
Selection.Copy
Range("E2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
If Range("C3") = "x" Then
Range("A3").Select
Selection.Copy
Range("E1").Select
ActiveSheet.Paste
Range("B3").Select
Application.CutCopyMode = False
Selection.Copy
Range("E2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
End Sub
Je l'ai faite pour la recopie de 2 lignes 1 et 2 des colonnes A et B et je
me demandais comment faire pour faire la même chose avec un nombre étendu de
lignes et de colonne (en faite au lieu de mettre des coordonnées precises
comme A1 ou A2, je voudrais pouvoir dire "si dans la colonne "C" il y a "x"
alors tu recopie la ligne qui est devant).
Merci
Je ne suis pas sûr d'avoir très bien compris la question mais essai ceci:
Sub CopieDonnee()
Dim Cell, MaPlageX As Range Set MaPlageX = Range("C1:C10") 'à adpater
For Each Cell In MaPlageX If Cell = "x" Then Cell.Offset(0, 2) = Cell.Offset(0, -2) Cell.Offset(0, 3) = Cell.Offset(0, -1) End If Next
End Sub
Cela recopie les données de An et Bn, en Dn et En, si en Cn tu as "x" où n est le numéro de ligne. Si j'ai mal compris, je peux adapter.
Cordialement,
GVentre
Merci, c'est tout a fait ca que je cherchais. Par contre, j'avais pensé egalement a faire la même chose par le biais d'une macro et j'ai tenté d'en mettre une au point. Ca donne ca (ne faites pas attention aux coordonnées des cellules qui n'ont plus rien a voir avec mon exemple precedent): If Range("C2") = "x" Then Range("A2").Select Selection.Copy Range("E1").Select ActiveSheet.Paste Range("B2").Select Application.CutCopyMode = False Selection.Copy Range("E2").Select ActiveSheet.Paste Application.CutCopyMode = False End If If Range("C3") = "x" Then Range("A3").Select Selection.Copy Range("E1").Select ActiveSheet.Paste Range("B3").Select Application.CutCopyMode = False Selection.Copy Range("E2").Select ActiveSheet.Paste Application.CutCopyMode = False End If End Sub Je l'ai faite pour la recopie de 2 lignes 1 et 2 des colonnes A et B et je me demandais comment faire pour faire la même chose avec un nombre étendu de lignes et de colonne (en faite au lieu de mettre des coordonnées precises comme A1 ou A2, je voudrais pouvoir dire "si dans la colonne "C" il y a "x" alors tu recopie la ligne qui est devant). Merci
Céline06
Merci beaucoup. Juste un petit detail par contre, est ce que tu peux me dire quoi changer si je veux que An et Bn soient recopié dans les cellules D1 et E1 (et plus Dn et En) si il y a "X" dans Cn.
De plus (mais t'embétes pas avec cette question si tu peux pas), est ce qu'il est possible de recopié An et Bn (si "x" dans Cn) dans Dn et En mais sans sauter de ligne si par exemple la croix est dans C2 et que C1 est vide?
Merci beaucoup en tout cas pour ta reponse.
Bonjour Céline06,
Je ne suis pas sûr d'avoir très bien compris la question mais essai ceci:
Sub CopieDonnee()
Dim Cell, MaPlageX As Range Set MaPlageX = Range("C1:C10") 'à adpater
For Each Cell In MaPlageX If Cell = "x" Then Cell.Offset(0, 2) = Cell.Offset(0, -2) Cell.Offset(0, 3) = Cell.Offset(0, -1) End If Next
End Sub
Cela recopie les données de An et Bn, en Dn et En, si en Cn tu as "x" où n est le numéro de ligne. Si j'ai mal compris, je peux adapter.
Cordialement,
GVentre
Merci, c'est tout a fait ca que je cherchais. Par contre, j'avais pensé egalement a faire la même chose par le biais d'une macro et j'ai tenté d'en mettre une au point. Ca donne ca (ne faites pas attention aux coordonnées des cellules qui n'ont plus rien a voir avec mon exemple precedent): If Range("C2") = "x" Then Range("A2").Select Selection.Copy Range("E1").Select ActiveSheet.Paste Range("B2").Select Application.CutCopyMode = False Selection.Copy Range("E2").Select ActiveSheet.Paste Application.CutCopyMode = False End If If Range("C3") = "x" Then Range("A3").Select Selection.Copy Range("E1").Select ActiveSheet.Paste Range("B3").Select Application.CutCopyMode = False Selection.Copy Range("E2").Select ActiveSheet.Paste Application.CutCopyMode = False End If End Sub Je l'ai faite pour la recopie de 2 lignes 1 et 2 des colonnes A et B et je me demandais comment faire pour faire la même chose avec un nombre étendu de lignes et de colonne (en faite au lieu de mettre des coordonnées precises comme A1 ou A2, je voudrais pouvoir dire "si dans la colonne "C" il y a "x" alors tu recopie la ligne qui est devant). Merci
Merci beaucoup. Juste un petit detail par contre, est ce que tu peux me dire
quoi changer si je veux que An et Bn soient recopié dans les cellules D1 et
E1 (et plus Dn et En) si il y a "X" dans Cn.
De plus (mais t'embétes pas avec cette question si tu peux pas), est ce
qu'il est possible de recopié An et Bn (si "x" dans Cn) dans Dn et En mais
sans sauter de ligne si par exemple la croix est dans C2 et que C1 est vide?
Merci beaucoup en tout cas pour ta reponse.
Bonjour Céline06,
Je ne suis pas sûr d'avoir très bien compris la question mais essai ceci:
Sub CopieDonnee()
Dim Cell, MaPlageX As Range
Set MaPlageX = Range("C1:C10") 'à adpater
For Each Cell In MaPlageX
If Cell = "x" Then
Cell.Offset(0, 2) = Cell.Offset(0, -2)
Cell.Offset(0, 3) = Cell.Offset(0, -1)
End If
Next
End Sub
Cela recopie les données de An et Bn, en Dn et En, si en Cn tu as "x" où
n est le numéro de ligne.
Si j'ai mal compris, je peux adapter.
Cordialement,
GVentre
Merci, c'est tout a fait ca que je cherchais.
Par contre, j'avais pensé egalement a faire la même chose par le biais d'une
macro et j'ai tenté d'en mettre une au point.
Ca donne ca (ne faites pas attention aux coordonnées des cellules qui n'ont
plus rien a voir avec mon exemple precedent):
If Range("C2") = "x" Then
Range("A2").Select
Selection.Copy
Range("E1").Select
ActiveSheet.Paste
Range("B2").Select
Application.CutCopyMode = False
Selection.Copy
Range("E2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
If Range("C3") = "x" Then
Range("A3").Select
Selection.Copy
Range("E1").Select
ActiveSheet.Paste
Range("B3").Select
Application.CutCopyMode = False
Selection.Copy
Range("E2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
End Sub
Je l'ai faite pour la recopie de 2 lignes 1 et 2 des colonnes A et B et je
me demandais comment faire pour faire la même chose avec un nombre étendu de
lignes et de colonne (en faite au lieu de mettre des coordonnées precises
comme A1 ou A2, je voudrais pouvoir dire "si dans la colonne "C" il y a "x"
alors tu recopie la ligne qui est devant).
Merci
Merci beaucoup. Juste un petit detail par contre, est ce que tu peux me dire quoi changer si je veux que An et Bn soient recopié dans les cellules D1 et E1 (et plus Dn et En) si il y a "X" dans Cn.
De plus (mais t'embétes pas avec cette question si tu peux pas), est ce qu'il est possible de recopié An et Bn (si "x" dans Cn) dans Dn et En mais sans sauter de ligne si par exemple la croix est dans C2 et que C1 est vide?
Merci beaucoup en tout cas pour ta reponse.
Bonjour Céline06,
Je ne suis pas sûr d'avoir très bien compris la question mais essai ceci:
Sub CopieDonnee()
Dim Cell, MaPlageX As Range Set MaPlageX = Range("C1:C10") 'à adpater
For Each Cell In MaPlageX If Cell = "x" Then Cell.Offset(0, 2) = Cell.Offset(0, -2) Cell.Offset(0, 3) = Cell.Offset(0, -1) End If Next
End Sub
Cela recopie les données de An et Bn, en Dn et En, si en Cn tu as "x" où n est le numéro de ligne. Si j'ai mal compris, je peux adapter.
Cordialement,
GVentre
Merci, c'est tout a fait ca que je cherchais. Par contre, j'avais pensé egalement a faire la même chose par le biais d'une macro et j'ai tenté d'en mettre une au point. Ca donne ca (ne faites pas attention aux coordonnées des cellules qui n'ont plus rien a voir avec mon exemple precedent): If Range("C2") = "x" Then Range("A2").Select Selection.Copy Range("E1").Select ActiveSheet.Paste Range("B2").Select Application.CutCopyMode = False Selection.Copy Range("E2").Select ActiveSheet.Paste Application.CutCopyMode = False End If If Range("C3") = "x" Then Range("A3").Select Selection.Copy Range("E1").Select ActiveSheet.Paste Range("B3").Select Application.CutCopyMode = False Selection.Copy Range("E2").Select ActiveSheet.Paste Application.CutCopyMode = False End If End Sub Je l'ai faite pour la recopie de 2 lignes 1 et 2 des colonnes A et B et je me demandais comment faire pour faire la même chose avec un nombre étendu de lignes et de colonne (en faite au lieu de mettre des coordonnées precises comme A1 ou A2, je voudrais pouvoir dire "si dans la colonne "C" il y a "x" alors tu recopie la ligne qui est devant). Merci