Copier Coller une cellule sur une autre ligne sous conditions
Résolu
cpcr
Messages postés
29
Date d'inscription
Statut
Membre
Dernière intervention
-
foo -
foo -
A voir également:
- Copier Coller une cellule sur une autre ligne sous conditions
- Aller à la ligne dans une cellule excel - Guide
- Comment copier une vidéo youtube - Guide
- Excel cellule couleur si condition texte - Guide
- Historique copier coller - Guide
- Copier coller pdf - Guide
6 réponses
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
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
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.
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.
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.
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.
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
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
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.
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.
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
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
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.
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.
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question