Transfert de données

Le
Apitos
Bonsoir,

Comment faire pour copier une ligne du tableau (A1:En) dans celui de
(H1:Kn) si l'intersection de la ligne à copier avec la colonne E
contient une croix "x" ?

L'exemple en fichier joint.

http://cjoint.com/?mAq0i5FSAz

Merci,
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #5344181
Bonsoir.
Mets dans le code de la feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column If Target.Offset(, -4) = "" Then Exit Sub
If Target = "x" Then
Range("A" & Target.Row & ":D" & Target.Row).Copy _
Range("H65536").End(xlUp).Offset(1)
End If
End Sub
(regarde ton classeur modifié : http://cjoint.com/?mArNhurn7J)
Cordialement.
Daniel
"Apitos"
Bonsoir,

Comment faire pour copier une ligne du tableau (A1:En) dans celui de
(H1:Kn) si l'intersection de la ligne à copier avec la colonne E
contient une croix "x" ?

L'exemple en fichier joint.

http://cjoint.com/?mAq0i5FSAz

Merci,
Apitos
Le #5344071
Bonsoir Daniel,

Mais si on continue à copier les données, le tableau en bleu sera
écrasé).

Et si la ligne 11 (pour le tableau en bleu) contient des données, la
ligne copiée sera écrite à la suite de cette dernière (ligne 12 ici) !

Comment procède-t-on pour traiter ces cas :

1 - S'il y'a un "x" dans la colonne E, la ligne correspondante sera
copié sans doublons dans le tableau d'à coté.

2 - Si on enlève le "x", la ligne désignée sera effacer du deuxième
tableau.

3 - Si on arrive à proximité d'une ligne du tableau bleu, on insère
une ligne blanche, avant de copier la ligne marquée par un "x".

Merci à tous.
LSteph
Le #5344041
bonsoir,

Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range, laplage As Range, c As Range
With [a2].CurrentRegion.Columns(1)
Set laplage = Range("a2", "a" & _
.Cells(.Cells.Count).Row).Offset(0, 4)

Set iSect = Intersect(Target, laplage)
If iSect Is Nothing Then Exit Sub

Range([h1].CurrentRegion.Rows(2), _
[h1].CurrentRegion.Rows(.Rows.Count)).Clear
For Each c In laplage.Cells
With [h1].CurrentRegion
If LCase(c) = "x" Then
Range(c.Offset(0, -4).Address, _
c.Offset(0, -1).Address).Copy _
Destination:=.Rows(.Rows.Count)(2)
End If
End With
Next

End With
End Sub

'lSteph


Bonsoir Daniel,

Mais si on continue à copier les données, le tableau en bleu sera
écrasé).

Et si la ligne 11 (pour le tableau en bleu) contient des données, la
ligne copiée sera écrite à la suite de cette dernière (ligne 12 ici) !

Comment procède-t-on pour traiter ces cas :

1 - S'il y'a un "x" dans la colonne E, la ligne correspondante sera
copié sans doublons dans le tableau d'à coté.

2 - Si on enlève le "x", la ligne désignée sera effacer du deuxième
tableau.

3 - Si on arrive à proximité d'une ligne du tableau bleu, on insère
une ligne blanche, avant de copier la ligne marquée par un "x".

Merci à tous.





Apitos
Le #5344021
Bonjour L.Steph.

Je vais essayé ton code.

Voilà mon nouveaui fichier modifié.

http://cjoint.com/?mBbOPKa8jy

mais il reste encore des erreurs.

Merci.
Apitos
Le #5343891
Bonjour L.Steph.

Ca marche très bien, sauf qu'il y'a un petit problème :

Parfois le remboursement des crédits se fait en deux, voir plusieurs
tranches.

Jusqu'à maintenant je saisi ces données manuellement (sauf s'il existe
une idée de le faire cette tache en vba !), donc pas de croix dans le
premier tableau or la somme est saisie en sa totalité. Ce qui nous
amène à voir ces données s'effacer du deuxième tableau avant que le
code ne copie que les lignes marquées par une croix dans le premier
tableau.

Y'a-t-il une solution à ce problème ?

Merci.
lSteph
Le #5343871
Bonjour,

je ne comprends pas bien,

si tu saisis tes données dans le premier tableau elles sont dans le
premier tableau ,
tant que tu n'as pas supprimé, collé par dessus ou entré
une ou plusieurs croix à la fois
dans la colonne cible, rien ne change dans le tableau2

peux tu préciser davantage ou mettre un exemple plus concret en
http://cjoint.com et nous redonner le lien.

@+

lSteph

On 27 déc, 12:31, Apitos
Bonjour L.Steph.

Ca marche très bien, sauf qu'il y'a un petit problème :

Parfois le remboursement des crédits se fait en deux, voir plusieurs
tranches.

Jusqu'à maintenant je saisi ces données manuellement (sauf s'il existe
une idée de le faire cette tache en vba !), donc pas de croix dans le
premier tableau or la somme est saisie en sa totalité. Ce qui nous
amène à voir ces données s'effacer du deuxième tableau avant que l e
code ne copie que les lignes marquées par une croix dans le premier
tableau.

Y'a-t-il une solution à ce problème ?

Merci.


Apitos
Le #5343701
Bonsoir,

Peut-être que ce fichier explique quelque chose :

http://cjoint.com/?mBtpd1EkvL

Merci.
LSteph
Le #5343651
Bonsoir,
Ce que tu suggères soudain ne va plus
déjà sur la position initiale
Elle sort de la logique définie essentiellement sur le point 2 -
si des lignes n'ont pas de x elles disparaissent (relis ton article2)
il ne peut donc y avoir plus de lignes dans le tableau2 que dans le 1
car toute ligne qui n'a pas de x est supprimée.
Donc toute ligne qui serait dans le tanbleau2 alors qu'elle n'est plus
dans le tableau1 n'a frorcément pas de x , aussi en toute logique
elle disparait...!

2 - Si on enlève le "x", la ligne désignée sera effacer du deuxième
tableau.


Ensuite c'est donc dans le tableau1 que tu dois faire attention..
3 - Si on arrive à proximité d'une ligne du tableau bleu, on insère
une ligne blanche, avant de copier la ligne marquée par un "x".
avant d'ajouter des données dans le tableau1 si tu vois que tu vas

toucher celui d'en dessous ....insère donc une ligne..non?


@+

--
lSteph

Bonsoir,

Peut-être que ce fichier explique quelque chose :

http://cjoint.com/?mBtpd1EkvL

Merci.


Apitos
Le #5343611
Bonsoir,
Ce que tu suggères soudain  ne va plus
déjà sur la position initiale
Elle  sort de la logique définie essentiellement sur le point 2 -
si des lignes n'ont pas de x elles disparaissent (relis ton article2)
il ne peut donc y avoir plus de lignes dans le tableau2 que dans le 1
car toute ligne qui n'a pas de x est supprimée.
Donc toute ligne qui serait dans le tanbleau2 alors qu'elle n'est plus
dans le tableau1 n'a frorcément pas de x , aussi en toute logique
elle disparait...!


Oui vue de cet ongle tu as raison.

Mais, le remboursement d'une somme creditée n'est pas forcémént fait
en sa totalite en une seule fois dans tout les cas.

Alors, j'ai pensé à integrer ce cas.
ALors surement

2 - Si on enlève le "x", la ligne désignée sera effacer du deuxi ème
tableau.



Par exemple, j'enleve le "x" si je me suis trompé sur la ligne à
copier.

avant d'ajouter des données dans le tableau1 si tu vois que tu vas
toucher celui d'en dessous ....insère donc une ligne..non?


L'insertion d'un ligne vide au dessus du tableau1 se fera
manuellement.

Mais celle du tableau2 ce fait automatiquement.


LSteph
Le #5343591
Suggestions:

Mais, le remboursement d'une somme creditée n'est pas forcémént fait
en sa totalite en une seule fois dans tout les cas.



tu gardes la 1ère somme au chaud dans le tableau1
quand c'est complet tu rectifies et mets le x



L'insertion d'un ligne vide au dessus du tableau1 se fera
manuellement.

Mais celle du tableau2 ce fait automatiquement.



Non, les deux en même temps, quand tu vois que le 1
(qui a forcément toujours autant ou plus de lignes que le 2)
va toucher celui d'en dessous tu ajoutes la ligne pour toute la largeur
de ta feuille.

Cordialement.

--
lSteph

Publicité
Poster une réponse
Anonyme