Copier Coller une cellule sur une autre ligne sous conditions

Résolu/Fermé
cpcr Messages postés 29 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 16 avril 2014 - 15 avril 2014 à 20:28
 foo - 16 avril 2014 à 19:49
Bonjour,

Je suis bloqué concernant une manipulation à effectuer sur Excel. Je me permet donc de vous solliciter afin d'obtenir de l'aide.

J'ai un fichier sous Excel avec +/- 60 000 lignes qui ce compose de 14 colonnes.
Je souhaiterai déplacer le contenue d'une cellule ce trouvant dans la colonne "E" pour la couper en "F" en fonction de la colonne "D".

Si dans la colonne D un nombre est identique, le contenue en "E" est déplacer en "F" sur la même ligne de référence.

Je vous remercie par avance de tout l'aide que vous pourriez m'apporter ,en espérant avoir réussi à vous exposer mon problème.

Cordialement.

Encore MERCI



A voir également:

6 réponses

via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
Modifié par via55 le 15/04/2014 à 21:51
Bonsoir

Si j'ai compris le problème tu peux faire une macro en VBA de ce style :

Sub modif ()

For n=1 to 60000 ' de la ligne 1 à la ligne 60000 à adapter à ton fichier

If Sheets("Feuil1").range("D" & n).value=Sheets("Feuil1").range("E" & n).value then Sheets("Feuil1").range("F" & n).value=Sheets("Feuil1").range("E" & n).value :Sheets("Feuil1").range("E" & n).value="" ' Remplacer Feuil1 par le nom de ta feuille

Next

End sub


Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein
0
cpcr Messages postés 29 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 16 avril 2014
16 avril 2014 à 07:48
Bonjour,

En toute première chose merci de votre réponse si rapide.

En effectuant le code VBA donné une erreur de compilation apparait :

Next sans For

Merci d'avoir pris du temps pour votre réponse si rapide en tout cas.

Cordialement.
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
16 avril 2014 à 17:12
Bonjour

Je ne comprends pas il y a bien un For en 1ere ligne

vérifier qu'il n'y a pas d'erreur de recopie dans la macro

Cdlmnt
0
cpcr Messages postés 29 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 16 avril 2014
16 avril 2014 à 17:24
Bonjour,

Effectivement j'ai fait une faute de frappe.

Après correction la macro se lance mais il n'y a aucun changement sur mon fichier.

Encore merci pour vos réponses.

Cordialement.
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
16 avril 2014 à 17:33
Re,

S'il n'y a pas de changement c'est qu'il n'y a aucune correspondance exacte trouvée entre les colonnes D et E
Mais peut être n'est pas ce qui est recherché, la demande n'était pas très claire !

le plus simple pour pouvoir t'aider effacement, poster une exemple allégé (une vingtaine de lignes suffisent) et anonymé de ton fichier sur cjoint .com et m'indiquer ensuite ici le lien fourni en expliquant à partir d'une exemple précis du tableau un cas où les données doivent se transférer et pourquoi

Cdlmnt
0
cpcr Messages postés 29 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 16 avril 2014
Modifié par cpcr le 16/04/2014 à 17:41
C'est tres gentil de votre part je vois fair part du lien :

https://www.cjoint.com/?3DqrKZfoZKL

Sur le tableau il y a un exemple d'une vingtaine de lignes avec une colonne nommé PCE , celle ci doit être alimenter par la cellule en question.

Cordialement.
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
16 avril 2014 à 17:56
Oui et alors ?
je ne comprends guère mieux ! Est ce les lignes en violet qu'il faut traiter ? a savoir dans le cas de 2 n°s identiques qui se suivent en colonne D transferer les n°s de la colonne E en F ?
0
cpcr Messages postés 29 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 16 avril 2014
Modifié par cpcr le 16/04/2014 à 18:36
Oui cela est exactement ça. Vous avez entièrement compris mon soucis .
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
16 avril 2014 à 18:43
Alors cette macro fera l'affaire

Sub modif()

For n = 1 To 30 ' a adapter pour nombre de lignes

If Sheets("Feuil1").Range("D" & n).Value = Sheets("Feuil1").Range("D" & n + 1).Value Then Sheets("Feuil1").Range("F" & n).Value = Sheets("Feuil1").Range("E" & n).Value: Sheets("Feuil1").Range("E" & n).Value = "": Sheets("Feuil1").Range("F" & n + 1).Value = Sheets("Feuil1").Range("E" & n + 1).Value: Sheets("Feuil1").Range("E" & n + 1).Value = ""

Next

End Sub

Cdlmnt
0
cpcr Messages postés 29 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 16 avril 2014
16 avril 2014 à 18:56
Merci de votre réponse rapide.

Après essai votre macro fonctionne correctement mais je pense m'être mal exprimé, concernant le résultat voulu.

Je voudrai que si dans la colonne D il y a deux nombres identiques, le nombre inscrit dans la colonne E soit "Couper Coller" sur la colonne en F sur celle du dessus .
Tout ceci afin d'avoir une ligne avec toutes les colonnes renseignées si il y a doublon en D.

Encore merci et veuillez bien vouloir m'excuser de m'être mal exprimé.

Cordialement.
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
16 avril 2014 à 19:40
Ok alors essaye :

Sub modif()

For n = 1 To 30 ' a adapter pour nombre de lignes

If Sheets("Feuil1").Range("D" & n).Value = Sheets("Feuil1").Range("D" & n + 1).Value Then Sheets("Feuil1").Range("F" & n).Value = Sheets("Feuil1").Range("E" & n+1).Value: Sheets("Feuil1").Range("E" & n+1).Value = ""

Next

End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour
modification de ta macro

Sub modif()
Application.ScreenUpdating = False
For L = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Range("D" & L).Value = Range("E" & L).Value Then
Range("F" & L).Value = Range("E" & L).Value
Range("E" & L).Value = ""
End If
Next
End Sub

A+

Maurice
-1
cpcr Messages postés 29 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 16 avril 2014
16 avril 2014 à 18:35
Bonjour,

Merci de votre participation. J'ai essaye de rentrer votre code mais il ne se passe rien.

Cordialement.
0
Bonjour
ses normal sur ton model la colonne D est <> de E
et la macro dit =
If Range("D" & L).Value = Range("E" & L).Value Then

A+
Maurice
-1