Bonjour à tous,
Je me frotte au problème suivant:j'ai un classeur A avec des
références clients dans lequel je dois saisir uniquement la raison
sociale pour la recopier dans un classeur B , toujours el même, sur
autre serveur;existe-il un e possibilité de le faire par macro
évenementielle cad quand je sélectionne la cellule du classeur A et
que je fais enter la dernière cellule vide de la colonne C du classeur
B est automatiquement remplie;les deux classeurs sont toujours ouverts
lors de la saisie.
Voilà j'espère que c'est assez clair , par avance merci,
Chalo
Bonjour à tous,
Je me frotte au problème suivant:j'ai un classeur A avec des
références clients dans lequel je dois saisir uniquement la raison
sociale pour la recopier dans un classeur B , toujours el même, sur
autre serveur;existe-il un e possibilité de le faire par macro
évenementielle cad quand je sélectionne la cellule du classeur A et
que je fais enter la dernière cellule vide de la colonne C du classeur
B est automatiquement remplie;les deux classeurs sont toujours ouverts
lors de la saisie.
Voilà j'espère que c'est assez clair , par avance merci,
Chalo
Bonjour à tous,
Je me frotte au problème suivant:j'ai un classeur A avec des
références clients dans lequel je dois saisir uniquement la raison
sociale pour la recopier dans un classeur B , toujours el même, sur
autre serveur;existe-il un e possibilité de le faire par macro
évenementielle cad quand je sélectionne la cellule du classeur A et
que je fais enter la dernière cellule vide de la colonne C du classeur
B est automatiquement remplie;les deux classeurs sont toujours ouverts
lors de la saisie.
Voilà j'espère que c'est assez clair , par avance merci,
Chalo
Salut chalo
Si j'ai bien compris tu veux ramener la valeur saisie d'un classeur dans la
même cellule d'un autre classeur
En partant du principe que le classeur de destination est ouvert
Dans le VBA de la feuille de saisie tu mets ce code
Private Sub Worksheet_Change(ByVal Target As Range)
A = Target.Address
Workbooks("Classeur de destination").Sheets("Onglet").Range(A) = Target
End Sub
Si tu souhaites limiter les cellules qui doivent être recopiées mets cet
autre code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = Range("H1").Column And Target.Row <= 10 Then
A = Target.Address
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Else
Exit Sub
End If
End Sub
La ligne :
If Target.Column = Range("H1").Column And Target.Row <= 10
détermine la zone active pour ce code (ici H1 à H10, Range("H1") la c olonne
et Target.Row < la ligne 10)
Espérant avoir répondu à ton attente
Salut chalo
Si j'ai bien compris tu veux ramener la valeur saisie d'un classeur dans la
même cellule d'un autre classeur
En partant du principe que le classeur de destination est ouvert
Dans le VBA de la feuille de saisie tu mets ce code
Private Sub Worksheet_Change(ByVal Target As Range)
A = Target.Address
Workbooks("Classeur de destination").Sheets("Onglet").Range(A) = Target
End Sub
Si tu souhaites limiter les cellules qui doivent être recopiées mets cet
autre code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = Range("H1").Column And Target.Row <= 10 Then
A = Target.Address
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Else
Exit Sub
End If
End Sub
La ligne :
If Target.Column = Range("H1").Column And Target.Row <= 10
détermine la zone active pour ce code (ici H1 à H10, Range("H1") la c olonne
et Target.Row <=10 la ligne 10)
Espérant avoir répondu à ton attente
Salut chalo
Si j'ai bien compris tu veux ramener la valeur saisie d'un classeur dans la
même cellule d'un autre classeur
En partant du principe que le classeur de destination est ouvert
Dans le VBA de la feuille de saisie tu mets ce code
Private Sub Worksheet_Change(ByVal Target As Range)
A = Target.Address
Workbooks("Classeur de destination").Sheets("Onglet").Range(A) = Target
End Sub
Si tu souhaites limiter les cellules qui doivent être recopiées mets cet
autre code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = Range("H1").Column And Target.Row <= 10 Then
A = Target.Address
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Else
Exit Sub
End If
End Sub
La ligne :
If Target.Column = Range("H1").Column And Target.Row <= 10
détermine la zone active pour ce code (ici H1 à H10, Range("H1") la c olonne
et Target.Row < la ligne 10)
Espérant avoir répondu à ton attente
Bonjour FFO, en fait lasaisie du classeur B de destination s'effectue
toujours dans la colonne C à partir d'une cellule de la Colonne D du
classeur A source MAIS il ne faut pas que la cellule du classeur A
soit recopié aux mêmes coordonnées d'origine sur le classeur B:exemple
une valeur en D345 doit se retrouver en C19, le point commun c'est que
les données partent de Co D Classeur A pour Col C Classeur B, c'est
tout.
Merci par avance,
Chalo
On 8 juin, 17:35, FFO wrote:Salut chalo
Si j'ai bien compris tu veux ramener la valeur saisie d'un classeur dans la
même cellule d'un autre classeur
En partant du principe que le classeur de destination est ouvert
Dans le VBA de la feuille de saisie tu mets ce code
Private Sub Worksheet_Change(ByVal Target As Range)
A = Target.Address
Workbooks("Classeur de destination").Sheets("Onglet").Range(A) = Target
End Sub
Si tu souhaites limiter les cellules qui doivent être recopiées mets cet
autre code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = Range("H1").Column And Target.Row <= 10 Then
A = Target.Address
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Else
Exit Sub
End If
End Sub
La ligne :
If Target.Column = Range("H1").Column And Target.Row <= 10
détermine la zone active pour ce code (ici H1 à H10, Range("H1") la colonne
et Target.Row < la ligne 10)
Espérant avoir répondu à ton attente
Bonjour FFO, en fait lasaisie du classeur B de destination s'effectue
toujours dans la colonne C à partir d'une cellule de la Colonne D du
classeur A source MAIS il ne faut pas que la cellule du classeur A
soit recopié aux mêmes coordonnées d'origine sur le classeur B:exemple
une valeur en D345 doit se retrouver en C19, le point commun c'est que
les données partent de Co D Classeur A pour Col C Classeur B, c'est
tout.
Merci par avance,
Chalo
On 8 juin, 17:35, FFO <F...@discussions.microsoft.com> wrote:
Salut chalo
Si j'ai bien compris tu veux ramener la valeur saisie d'un classeur dans la
même cellule d'un autre classeur
En partant du principe que le classeur de destination est ouvert
Dans le VBA de la feuille de saisie tu mets ce code
Private Sub Worksheet_Change(ByVal Target As Range)
A = Target.Address
Workbooks("Classeur de destination").Sheets("Onglet").Range(A) = Target
End Sub
Si tu souhaites limiter les cellules qui doivent être recopiées mets cet
autre code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = Range("H1").Column And Target.Row <= 10 Then
A = Target.Address
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Else
Exit Sub
End If
End Sub
La ligne :
If Target.Column = Range("H1").Column And Target.Row <= 10
détermine la zone active pour ce code (ici H1 à H10, Range("H1") la colonne
et Target.Row < la ligne 10)
Espérant avoir répondu à ton attente
Bonjour FFO, en fait lasaisie du classeur B de destination s'effectue
toujours dans la colonne C à partir d'une cellule de la Colonne D du
classeur A source MAIS il ne faut pas que la cellule du classeur A
soit recopié aux mêmes coordonnées d'origine sur le classeur B:exemple
une valeur en D345 doit se retrouver en C19, le point commun c'est que
les données partent de Co D Classeur A pour Col C Classeur B, c'est
tout.
Merci par avance,
Chalo
On 8 juin, 17:35, FFO wrote:Salut chalo
Si j'ai bien compris tu veux ramener la valeur saisie d'un classeur dans la
même cellule d'un autre classeur
En partant du principe que le classeur de destination est ouvert
Dans le VBA de la feuille de saisie tu mets ce code
Private Sub Worksheet_Change(ByVal Target As Range)
A = Target.Address
Workbooks("Classeur de destination").Sheets("Onglet").Range(A) = Target
End Sub
Si tu souhaites limiter les cellules qui doivent être recopiées mets cet
autre code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = Range("H1").Column And Target.Row <= 10 Then
A = Target.Address
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Else
Exit Sub
End If
End Sub
La ligne :
If Target.Column = Range("H1").Column And Target.Row <= 10
détermine la zone active pour ce code (ici H1 à H10, Range("H1") la colonne
et Target.Row < la ligne 10)
Espérant avoir répondu à ton attente
Salut chalo
Pas coton tes contraintes
Je te propose d'adapter la ligne de mon code suivante :
A = Target.Address
La variable "Target" est ta cellule de la colonne D classeur A
La variable A est ta cellule de destination colonne C classeur B
Il faut si l'adresse de ces cellules sont différentes ajuster l'égali té en
rajoutant l'instruction Offset de cette manière :
A = Target.Offset(-1,-1).Address
Dans cet exemple la valeur de Target situé dans la cellule D345 du clas seur
A sera recopier dans la cellule C344 du classeur B
Offset (-1,-1) décale de -1 la ligne de Target et de -1 la colonne de T arget
soit pour un Target à D345 un A à C344
Si tu souhaites reporter la cellule D345 du classeur A à la cellule C19 du
classeur B il faut mettre un Offset de :
Offset (-326,-1)
Et donc mettre la ligne
A = Target.Offset(-326,-1).Address
Il va de soit que l'écart entre la cellule d'origine colonne D classeur A et
la cellule de destination colonne C classeur B doit toujours être ident ique
quelque soit la cellule
dans l'exemple D345 et C19 l'écart est de 326
Pour D346 la cellule correspondante doit être C20
Pour D347 la cellule correspondante doit être C21
Etc....
N'oublies pas d'adapter la zone de saisie comme décrit dans ma premiè re
réponse
Ainsique que le nom du classeur et de la feuille de destination (Colonne C
classeur B) avec la ligne:
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Espérant avoir répondu à ton attente
Dis moi !!!!Bonjour FFO, en fait lasaisie du classeur B de destination s'effectue
toujours dans la colonne C à partir d'une cellule de la Colonne D du
classeur A source MAIS il ne faut pas que la cellule du classeur A
soit recopié aux mêmes coordonnées d'origine sur le classeur B:ex emple
une valeur en D345 doit se retrouver en C19, le point commun c'est que
les données partent de Co D Classeur A pour Col C Classeur B, c'est
tout.
Merci par avance,
Chalo
On 8 juin, 17:35, FFO wrote:Salut chalo
Si j'ai bien compris tu veux ramener la valeur saisie d'un classeur d ans la
même cellule d'un autre classeur
En partant du principe que le classeur de destination est ouvert
Dans le VBA de la feuille de saisie tu mets ce code
Private Sub Worksheet_Change(ByVal Target As Range)
A = Target.Address
Workbooks("Classeur de destination").Sheets("Onglet").Range(A) = Ta rget
End Sub
Si tu souhaites limiter les cellules qui doivent être recopiées m ets cet
autre code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = Range("H1").Column And Target.Row <= 10 Then
A = Target.Address
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Else
Exit Sub
End If
End Sub
La ligne :
If Target.Column = Range("H1").Column And Target.Row <= 10
détermine la zone active pour ce code (ici H1 à H10, Range("H1") la colonne
et Target.Row < la ligne 10)
Espérant avoir répondu à ton attente- Masquer le texte des mess ages précédents -
Salut FFo, en fait je me suis mal exprimé:en reprenant mon exemple
Salut chalo
Pas coton tes contraintes
Je te propose d'adapter la ligne de mon code suivante :
A = Target.Address
La variable "Target" est ta cellule de la colonne D classeur A
La variable A est ta cellule de destination colonne C classeur B
Il faut si l'adresse de ces cellules sont différentes ajuster l'égali té en
rajoutant l'instruction Offset de cette manière :
A = Target.Offset(-1,-1).Address
Dans cet exemple la valeur de Target situé dans la cellule D345 du clas seur
A sera recopier dans la cellule C344 du classeur B
Offset (-1,-1) décale de -1 la ligne de Target et de -1 la colonne de T arget
soit pour un Target à D345 un A à C344
Si tu souhaites reporter la cellule D345 du classeur A à la cellule C19 du
classeur B il faut mettre un Offset de :
Offset (-326,-1)
Et donc mettre la ligne
A = Target.Offset(-326,-1).Address
Il va de soit que l'écart entre la cellule d'origine colonne D classeur A et
la cellule de destination colonne C classeur B doit toujours être ident ique
quelque soit la cellule
dans l'exemple D345 et C19 l'écart est de 326
Pour D346 la cellule correspondante doit être C20
Pour D347 la cellule correspondante doit être C21
Etc....
N'oublies pas d'adapter la zone de saisie comme décrit dans ma premiè re
réponse
Ainsique que le nom du classeur et de la feuille de destination (Colonne C
classeur B) avec la ligne:
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Espérant avoir répondu à ton attente
Dis moi !!!!
Bonjour FFO, en fait lasaisie du classeur B de destination s'effectue
toujours dans la colonne C à partir d'une cellule de la Colonne D du
classeur A source MAIS il ne faut pas que la cellule du classeur A
soit recopié aux mêmes coordonnées d'origine sur le classeur B:ex emple
une valeur en D345 doit se retrouver en C19, le point commun c'est que
les données partent de Co D Classeur A pour Col C Classeur B, c'est
tout.
Merci par avance,
Chalo
On 8 juin, 17:35, FFO <F...@discussions.microsoft.com> wrote:
Salut chalo
Si j'ai bien compris tu veux ramener la valeur saisie d'un classeur d ans la
même cellule d'un autre classeur
En partant du principe que le classeur de destination est ouvert
Dans le VBA de la feuille de saisie tu mets ce code
Private Sub Worksheet_Change(ByVal Target As Range)
A = Target.Address
Workbooks("Classeur de destination").Sheets("Onglet").Range(A) = Ta rget
End Sub
Si tu souhaites limiter les cellules qui doivent être recopiées m ets cet
autre code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = Range("H1").Column And Target.Row <= 10 Then
A = Target.Address
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Else
Exit Sub
End If
End Sub
La ligne :
If Target.Column = Range("H1").Column And Target.Row <= 10
détermine la zone active pour ce code (ici H1 à H10, Range("H1") la colonne
et Target.Row <=10 la ligne 10)
Espérant avoir répondu à ton attente- Masquer le texte des mess ages précédents -
Salut FFo, en fait je me suis mal exprimé:en reprenant mon exemple
Salut chalo
Pas coton tes contraintes
Je te propose d'adapter la ligne de mon code suivante :
A = Target.Address
La variable "Target" est ta cellule de la colonne D classeur A
La variable A est ta cellule de destination colonne C classeur B
Il faut si l'adresse de ces cellules sont différentes ajuster l'égali té en
rajoutant l'instruction Offset de cette manière :
A = Target.Offset(-1,-1).Address
Dans cet exemple la valeur de Target situé dans la cellule D345 du clas seur
A sera recopier dans la cellule C344 du classeur B
Offset (-1,-1) décale de -1 la ligne de Target et de -1 la colonne de T arget
soit pour un Target à D345 un A à C344
Si tu souhaites reporter la cellule D345 du classeur A à la cellule C19 du
classeur B il faut mettre un Offset de :
Offset (-326,-1)
Et donc mettre la ligne
A = Target.Offset(-326,-1).Address
Il va de soit que l'écart entre la cellule d'origine colonne D classeur A et
la cellule de destination colonne C classeur B doit toujours être ident ique
quelque soit la cellule
dans l'exemple D345 et C19 l'écart est de 326
Pour D346 la cellule correspondante doit être C20
Pour D347 la cellule correspondante doit être C21
Etc....
N'oublies pas d'adapter la zone de saisie comme décrit dans ma premiè re
réponse
Ainsique que le nom du classeur et de la feuille de destination (Colonne C
classeur B) avec la ligne:
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Espérant avoir répondu à ton attente
Dis moi !!!!Bonjour FFO, en fait lasaisie du classeur B de destination s'effectue
toujours dans la colonne C à partir d'une cellule de la Colonne D du
classeur A source MAIS il ne faut pas que la cellule du classeur A
soit recopié aux mêmes coordonnées d'origine sur le classeur B:ex emple
une valeur en D345 doit se retrouver en C19, le point commun c'est que
les données partent de Co D Classeur A pour Col C Classeur B, c'est
tout.
Merci par avance,
Chalo
On 8 juin, 17:35, FFO wrote:Salut chalo
Si j'ai bien compris tu veux ramener la valeur saisie d'un classeur d ans la
même cellule d'un autre classeur
En partant du principe que le classeur de destination est ouvert
Dans le VBA de la feuille de saisie tu mets ce code
Private Sub Worksheet_Change(ByVal Target As Range)
A = Target.Address
Workbooks("Classeur de destination").Sheets("Onglet").Range(A) = Ta rget
End Sub
Si tu souhaites limiter les cellules qui doivent être recopiées m ets cet
autre code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = Range("H1").Column And Target.Row <= 10 Then
A = Target.Address
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Else
Exit Sub
End If
End Sub
La ligne :
If Target.Column = Range("H1").Column And Target.Row <= 10
détermine la zone active pour ce code (ici H1 à H10, Range("H1") la colonne
et Target.Row < la ligne 10)
Espérant avoir répondu à ton attente- Masquer le texte des mess ages précédents -
Salut FFo, en fait je me suis mal exprimé:en reprenant mon exemple
On 12 juin, 08:21, FFO wrote:Salut chalo
Pas coton tes contraintes
Je te propose d'adapter la ligne de mon code suivante :
A = Target.Address
La variable "Target" est ta cellule de la colonne D classeur A
La variable A est ta cellule de destination colonne C classeur B
Il faut si l'adresse de ces cellules sont différentes ajuster l'égalité en
rajoutant l'instruction Offset de cette manière :
A = Target.Offset(-1,-1).Address
Dans cet exemple la valeur de Target situé dans la cellule D345 du classeur
A sera recopier dans la cellule C344 du classeur B
Offset (-1,-1) décale de -1 la ligne de Target et de -1 la colonne de Target
soit pour un Target à D345 un A à C344
Si tu souhaites reporter la cellule D345 du classeur A à la cellule C19 du
classeur B il faut mettre un Offset de :
Offset (-326,-1)
Et donc mettre la ligne
A = Target.Offset(-326,-1).Address
Il va de soit que l'écart entre la cellule d'origine colonne D classeur A et
la cellule de destination colonne C classeur B doit toujours être identique
quelque soit la cellule
dans l'exemple D345 et C19 l'écart est de 326
Pour D346 la cellule correspondante doit être C20
Pour D347 la cellule correspondante doit être C21
Etc....
N'oublies pas d'adapter la zone de saisie comme décrit dans ma première
réponse
Ainsique que le nom du classeur et de la feuille de destination (Colonne C
classeur B) avec la ligne:
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Espérant avoir répondu à ton attente
Dis moi !!!!Bonjour FFO, en fait lasaisie du classeur B de destination s'effectue
toujours dans la colonne C à partir d'une cellule de la Colonne D du
classeur A source MAIS il ne faut pas que la cellule du classeur A
soit recopié aux mêmes coordonnées d'origine sur le classeur B:exemple
une valeur en D345 doit se retrouver en C19, le point commun c'est que
les données partent de Co D Classeur A pour Col C Classeur B, c'est
tout.
Merci par avance,
Chalo
On 8 juin, 17:35, FFO wrote:Salut chalo
Si j'ai bien compris tu veux ramener la valeur saisie d'un classeur dans la
même cellule d'un autre classeur
En partant du principe que le classeur de destination est ouvert
Dans le VBA de la feuille de saisie tu mets ce code
Private Sub Worksheet_Change(ByVal Target As Range)
A = Target.Address
Workbooks("Classeur de destination").Sheets("Onglet").Range(A) = Target
End Sub
Si tu souhaites limiter les cellules qui doivent être recopiées mets cet
autre code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = Range("H1").Column And Target.Row <= 10 Then
A = Target.Address
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Else
Exit Sub
End If
End Sub
La ligne :
If Target.Column = Range("H1").Column And Target.Row <= 10
détermine la zone active pour ce code (ici H1 à H10, Range("H1") la colonne
et Target.Row < la ligne 10)
Espérant avoir répondu à ton attente- Masquer le texte des messages précédents -
Salut FFo, en fait je me suis mal exprimé:en reprenant mon exemple
(D345 en C19), je veux juste dire que la valeur vient de la col D mais
que l'écart est aléatoire pour arriver en C19(et donc la prochaine
saise doit arriver en C20 et la suivante en C21 etc...):par exemple le
client à rechercher pour mettre en C20 peut trés bien être D578 donc
l'écart n'est pas constant du tout, l'idée c'est que, en T1, la
sélection en D quelquechose se retrouve en C quelquechose, et qu'en T2
la sélection en D quelquechose d'autre se retrouve en C quelquechose+1
Je ne sais pas si c'est plus clair ainsi?l'idée est donc qu'une
celulle sélectionnée se retrouve en colonne c juste en dessous du
dernier enregistrement.
Merci pour le code jusqu'ici en tous cas,
Gonzalo
On 12 juin, 08:21, FFO <F...@discussions.microsoft.com> wrote:
Salut chalo
Pas coton tes contraintes
Je te propose d'adapter la ligne de mon code suivante :
A = Target.Address
La variable "Target" est ta cellule de la colonne D classeur A
La variable A est ta cellule de destination colonne C classeur B
Il faut si l'adresse de ces cellules sont différentes ajuster l'égalité en
rajoutant l'instruction Offset de cette manière :
A = Target.Offset(-1,-1).Address
Dans cet exemple la valeur de Target situé dans la cellule D345 du classeur
A sera recopier dans la cellule C344 du classeur B
Offset (-1,-1) décale de -1 la ligne de Target et de -1 la colonne de Target
soit pour un Target à D345 un A à C344
Si tu souhaites reporter la cellule D345 du classeur A à la cellule C19 du
classeur B il faut mettre un Offset de :
Offset (-326,-1)
Et donc mettre la ligne
A = Target.Offset(-326,-1).Address
Il va de soit que l'écart entre la cellule d'origine colonne D classeur A et
la cellule de destination colonne C classeur B doit toujours être identique
quelque soit la cellule
dans l'exemple D345 et C19 l'écart est de 326
Pour D346 la cellule correspondante doit être C20
Pour D347 la cellule correspondante doit être C21
Etc....
N'oublies pas d'adapter la zone de saisie comme décrit dans ma première
réponse
Ainsique que le nom du classeur et de la feuille de destination (Colonne C
classeur B) avec la ligne:
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Espérant avoir répondu à ton attente
Dis moi !!!!
Bonjour FFO, en fait lasaisie du classeur B de destination s'effectue
toujours dans la colonne C à partir d'une cellule de la Colonne D du
classeur A source MAIS il ne faut pas que la cellule du classeur A
soit recopié aux mêmes coordonnées d'origine sur le classeur B:exemple
une valeur en D345 doit se retrouver en C19, le point commun c'est que
les données partent de Co D Classeur A pour Col C Classeur B, c'est
tout.
Merci par avance,
Chalo
On 8 juin, 17:35, FFO <F...@discussions.microsoft.com> wrote:
Salut chalo
Si j'ai bien compris tu veux ramener la valeur saisie d'un classeur dans la
même cellule d'un autre classeur
En partant du principe que le classeur de destination est ouvert
Dans le VBA de la feuille de saisie tu mets ce code
Private Sub Worksheet_Change(ByVal Target As Range)
A = Target.Address
Workbooks("Classeur de destination").Sheets("Onglet").Range(A) = Target
End Sub
Si tu souhaites limiter les cellules qui doivent être recopiées mets cet
autre code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = Range("H1").Column And Target.Row <= 10 Then
A = Target.Address
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Else
Exit Sub
End If
End Sub
La ligne :
If Target.Column = Range("H1").Column And Target.Row <= 10
détermine la zone active pour ce code (ici H1 à H10, Range("H1") la colonne
et Target.Row < la ligne 10)
Espérant avoir répondu à ton attente- Masquer le texte des messages précédents -
Salut FFo, en fait je me suis mal exprimé:en reprenant mon exemple
(D345 en C19), je veux juste dire que la valeur vient de la col D mais
que l'écart est aléatoire pour arriver en C19(et donc la prochaine
saise doit arriver en C20 et la suivante en C21 etc...):par exemple le
client à rechercher pour mettre en C20 peut trés bien être D578 donc
l'écart n'est pas constant du tout, l'idée c'est que, en T1, la
sélection en D quelquechose se retrouve en C quelquechose, et qu'en T2
la sélection en D quelquechose d'autre se retrouve en C quelquechose+1
Je ne sais pas si c'est plus clair ainsi?l'idée est donc qu'une
celulle sélectionnée se retrouve en colonne c juste en dessous du
dernier enregistrement.
Merci pour le code jusqu'ici en tous cas,
Gonzalo
On 12 juin, 08:21, FFO wrote:Salut chalo
Pas coton tes contraintes
Je te propose d'adapter la ligne de mon code suivante :
A = Target.Address
La variable "Target" est ta cellule de la colonne D classeur A
La variable A est ta cellule de destination colonne C classeur B
Il faut si l'adresse de ces cellules sont différentes ajuster l'égalité en
rajoutant l'instruction Offset de cette manière :
A = Target.Offset(-1,-1).Address
Dans cet exemple la valeur de Target situé dans la cellule D345 du classeur
A sera recopier dans la cellule C344 du classeur B
Offset (-1,-1) décale de -1 la ligne de Target et de -1 la colonne de Target
soit pour un Target à D345 un A à C344
Si tu souhaites reporter la cellule D345 du classeur A à la cellule C19 du
classeur B il faut mettre un Offset de :
Offset (-326,-1)
Et donc mettre la ligne
A = Target.Offset(-326,-1).Address
Il va de soit que l'écart entre la cellule d'origine colonne D classeur A et
la cellule de destination colonne C classeur B doit toujours être identique
quelque soit la cellule
dans l'exemple D345 et C19 l'écart est de 326
Pour D346 la cellule correspondante doit être C20
Pour D347 la cellule correspondante doit être C21
Etc....
N'oublies pas d'adapter la zone de saisie comme décrit dans ma première
réponse
Ainsique que le nom du classeur et de la feuille de destination (Colonne C
classeur B) avec la ligne:
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Espérant avoir répondu à ton attente
Dis moi !!!!Bonjour FFO, en fait lasaisie du classeur B de destination s'effectue
toujours dans la colonne C à partir d'une cellule de la Colonne D du
classeur A source MAIS il ne faut pas que la cellule du classeur A
soit recopié aux mêmes coordonnées d'origine sur le classeur B:exemple
une valeur en D345 doit se retrouver en C19, le point commun c'est que
les données partent de Co D Classeur A pour Col C Classeur B, c'est
tout.
Merci par avance,
Chalo
On 8 juin, 17:35, FFO wrote:Salut chalo
Si j'ai bien compris tu veux ramener la valeur saisie d'un classeur dans la
même cellule d'un autre classeur
En partant du principe que le classeur de destination est ouvert
Dans le VBA de la feuille de saisie tu mets ce code
Private Sub Worksheet_Change(ByVal Target As Range)
A = Target.Address
Workbooks("Classeur de destination").Sheets("Onglet").Range(A) = Target
End Sub
Si tu souhaites limiter les cellules qui doivent être recopiées mets cet
autre code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = Range("H1").Column And Target.Row <= 10 Then
A = Target.Address
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
Else
Exit Sub
End If
End Sub
La ligne :
If Target.Column = Range("H1").Column And Target.Row <= 10
détermine la zone active pour ce code (ici H1 à H10, Range("H1") la colonne
et Target.Row < la ligne 10)
Espérant avoir répondu à ton attente- Masquer le texte des messages précédents -
Salut FFo, en fait je me suis mal exprimé:en reprenant mon exemple
(D345 en C19), je veux juste dire que la valeur vient de la col D mais
que l'écart est aléatoire pour arriver en C19(et donc la prochaine
saise doit arriver en C20 et la suivante en C21 etc...):par exemple le
client à rechercher pour mettre en C20 peut trés bien être D578 donc
l'écart n'est pas constant du tout, l'idée c'est que, en T1, la
sélection en D quelquechose se retrouve en C quelquechose, et qu'en T2
la sélection en D quelquechose d'autre se retrouve en C quelquechose+1
Je ne sais pas si c'est plus clair ainsi?l'idée est donc qu'une
celulle sélectionnée se retrouve en colonne c juste en dessous du
dernier enregistrement.
Merci pour le code jusqu'ici en tous cas,
Gonzalo
Salut chalo
Tu me malmène !!!!
Dur dur !!!!
Je plaisante biensur !!!
Suivant tes dernières précisions fournies je te propose donc de modif ier la
ligne :
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
comme ceci
Workbooks("Classeur1.xls").Sheets("Feuil1").Range("C65535").End(xlUp).Off set(1, 0) = Target
Noublies pas d'actualiser "Classeur1.xls" en fonction du nom de ton
B et "Feuil1" en fonction du nom de l'onglet de destination
La Ligne :
A = Target.Address
Peut être supprimé
toute modification dans le classeur A colonne D sera ainsi reportée dan s la
première cellule libre du classeur B colonne C
Je pense que celà devrait convenir
Rassures moi vite !!!!
euh c'est toujours pas ça FFO ça me fait l'indice n'appartient pas à
Salut chalo
Tu me malmène !!!!
Dur dur !!!!
Je plaisante biensur !!!
Suivant tes dernières précisions fournies je te propose donc de modif ier la
ligne :
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
comme ceci
Workbooks("Classeur1.xls").Sheets("Feuil1").Range("C65535").End(xlUp).Off set(1, 0) = Target
Noublies pas d'actualiser "Classeur1.xls" en fonction du nom de ton
B et "Feuil1" en fonction du nom de l'onglet de destination
La Ligne :
A = Target.Address
Peut être supprimé
toute modification dans le classeur A colonne D sera ainsi reportée dan s la
première cellule libre du classeur B colonne C
Je pense que celà devrait convenir
Rassures moi vite !!!!
euh c'est toujours pas ça FFO ça me fait l'indice n'appartient pas à
Salut chalo
Tu me malmène !!!!
Dur dur !!!!
Je plaisante biensur !!!
Suivant tes dernières précisions fournies je te propose donc de modif ier la
ligne :
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
comme ceci
Workbooks("Classeur1.xls").Sheets("Feuil1").Range("C65535").End(xlUp).Off set(1, 0) = Target
Noublies pas d'actualiser "Classeur1.xls" en fonction du nom de ton
B et "Feuil1" en fonction du nom de l'onglet de destination
La Ligne :
A = Target.Address
Peut être supprimé
toute modification dans le classeur A colonne D sera ainsi reportée dan s la
première cellule libre du classeur B colonne C
Je pense que celà devrait convenir
Rassures moi vite !!!!
euh c'est toujours pas ça FFO ça me fait l'indice n'appartient pas à
On 12 juin, 17:28, FFO wrote:Salut chalo
Tu me malmène !!!!
Dur dur !!!!
Je plaisante biensur !!!
Suivant tes dernières précisions fournies je te propose donc de modifier la
ligne :
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
comme ceci
Workbooks("Classeur1.xls").Sheets("Feuil1").Range("C65535").End(xlUp).Offset(1, 0) = Target
Noublies pas d'actualiser "Classeur1.xls" en fonction du nom de ton
classeurB et "Feuil1" en fonction du nom de l'onglet de destination
La Ligne :
A = Target.Address
Peut être supprimé
toute modification dans le classeur A colonne D sera ainsi reportée dans la
première cellule libre du classeur B colonne C
Je pense que celà devrait convenir
Rassures moi vite !!!!
euh c'est toujours pas ça FFO ça me fait l'indice n'appartient pas à
la sélection en erreur de déboggage quand je lance le truc
exemple en D345 dans le "classeurclient" on va avoir "SA truc 54 ave
des champs élysées"
dans le classeurtest(de destination) en C1 on doit avoir "SA truc 54
ave des champs élysées"
maintenant sur la sasie 2 en D58 on aura "sa bidule 68 rue du rocher"
on doit retrouver cela en C2
ma question est la ligne de
code :>Workbooks("Classeur1.xls").Sheets("Feuil1").Range("C65535").End(xlUp).Offse
t(1, 0) = Target
que je modifie donc en
Workbooks("Classeurtest.xls").Sheets("Feuil1").Range("C65535").End(xlUp).Offse
t(1, 0) = Target
doit elle se trouver dans "classeurclient" ou bien dans "classeurtest"?
(pour ma part j'ai compris que cela doit être en classeurclient)
désolé je dois faire une gaffe évidente mais je ne trouve pas où est
le problème....
Merci d'avance
Chalo
On 12 juin, 17:28, FFO <F...@discussions.microsoft.com> wrote:
Salut chalo
Tu me malmène !!!!
Dur dur !!!!
Je plaisante biensur !!!
Suivant tes dernières précisions fournies je te propose donc de modifier la
ligne :
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
comme ceci
Workbooks("Classeur1.xls").Sheets("Feuil1").Range("C65535").End(xlUp).Offset(1, 0) = Target
Noublies pas d'actualiser "Classeur1.xls" en fonction du nom de ton
classeur
B et "Feuil1" en fonction du nom de l'onglet de destination
La Ligne :
A = Target.Address
Peut être supprimé
toute modification dans le classeur A colonne D sera ainsi reportée dans la
première cellule libre du classeur B colonne C
Je pense que celà devrait convenir
Rassures moi vite !!!!
euh c'est toujours pas ça FFO ça me fait l'indice n'appartient pas à
la sélection en erreur de déboggage quand je lance le truc
exemple en D345 dans le "classeurclient" on va avoir "SA truc 54 ave
des champs élysées"
dans le classeurtest(de destination) en C1 on doit avoir "SA truc 54
ave des champs élysées"
maintenant sur la sasie 2 en D58 on aura "sa bidule 68 rue du rocher"
on doit retrouver cela en C2
ma question est la ligne de
code :>Workbooks("Classeur1.xls").Sheets("Feuil1").Range("C65535").End(xlUp).Offse
t(1, 0) = Target
que je modifie donc en
Workbooks("Classeurtest.xls").Sheets("Feuil1").Range("C65535").End(xlUp).Offse
t(1, 0) = Target
doit elle se trouver dans "classeurclient" ou bien dans "classeurtest"?
(pour ma part j'ai compris que cela doit être en classeurclient)
désolé je dois faire une gaffe évidente mais je ne trouve pas où est
le problème....
Merci d'avance
Chalo
On 12 juin, 17:28, FFO wrote:Salut chalo
Tu me malmène !!!!
Dur dur !!!!
Je plaisante biensur !!!
Suivant tes dernières précisions fournies je te propose donc de modifier la
ligne :
Workbooks("Classeur1").Sheets("Feuil1").Range(A) = Target
comme ceci
Workbooks("Classeur1.xls").Sheets("Feuil1").Range("C65535").End(xlUp).Offset(1, 0) = Target
Noublies pas d'actualiser "Classeur1.xls" en fonction du nom de ton
classeurB et "Feuil1" en fonction du nom de l'onglet de destination
La Ligne :
A = Target.Address
Peut être supprimé
toute modification dans le classeur A colonne D sera ainsi reportée dans la
première cellule libre du classeur B colonne C
Je pense que celà devrait convenir
Rassures moi vite !!!!
euh c'est toujours pas ça FFO ça me fait l'indice n'appartient pas à
la sélection en erreur de déboggage quand je lance le truc
exemple en D345 dans le "classeurclient" on va avoir "SA truc 54 ave
des champs élysées"
dans le classeurtest(de destination) en C1 on doit avoir "SA truc 54
ave des champs élysées"
maintenant sur la sasie 2 en D58 on aura "sa bidule 68 rue du rocher"
on doit retrouver cela en C2
ma question est la ligne de
code :>Workbooks("Classeur1.xls").Sheets("Feuil1").Range("C65535").End(xlUp).Offse
t(1, 0) = Target
que je modifie donc en
Workbooks("Classeurtest.xls").Sheets("Feuil1").Range("C65535").End(xlUp).Offse
t(1, 0) = Target
doit elle se trouver dans "classeurclient" ou bien dans "classeurtest"?
(pour ma part j'ai compris que cela doit être en classeurclient)
désolé je dois faire une gaffe évidente mais je ne trouve pas où est
le problème....
Merci d'avance
Chalo