Copier une cellule en fonction d'autres cellules

Résolu/Fermé
siamens_duj Messages postés 192 Date d'inscription vendredi 20 juin 2014 Statut Membre Dernière intervention 14 février 2019 - Modifié par siamens_duj le 20/06/2016 à 14:37
siamens_duj Messages postés 192 Date d'inscription vendredi 20 juin 2014 Statut Membre Dernière intervention 14 février 2019 - 23 juin 2016 à 08:44
Bonjour, je fais appel à vous car je bloque sur un problème.

J'ai plusieurs feuilles dans un même classeur.

Dans la feuille "COR" je récapitules certaines correspondances entre les feuilles.

J'ai dans cette feuille, en colonne N la concaténation des cellules D, E et G. Je fais ensuite
la copie de ces valeurs en colonne M (afin de ne plus avoir la formule mais seulement les valeurs).

Dans la feuille "TXT", en colonne Y, je fais la concaténation des cellules B, C et D et je fais là
aussi une copie des valeurs en colonne Z.

Les champs de concaténation correspondent dans les deux cas au champs Nom, Prenom, et ID.

Je voudrais faire en sorte que si la valeur de la cellule en colonne M de la feuille "COR" est
égale à la valeur de la cellule en colonne Z de "TXT" alors la valeur de la cellule H de "COR"
est égale à la valeur de la cellule en colonne E de "TXT".

Ma feuille TXT fait environ 40.000 lignes et pour ma feuille COR cela dépend.

J'ai fais plusieurs codes mais à chaque fois j'ai "Excel ne répond pas".

Voici mon code :

Sub corres()

Dim u as long
Dim v as long

u = 2
v = 2

Do While Sheets("COR").Cells(u, 1).Value <> ""

If Sheets("COR").Cells(u, 13).Value = Sheets("TXT").Cells(v, 26).Value Then

Sheets("COR").Cells(u, 8).Value = Sheets("TXT").Cells(v, 5).Value

u = u + 1

Else
v = v + 1

If v = 40000 Then
u = u + 1
v = 2
End If


End If
Loop

end sub



Merci pour votre aide.

2 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
20 juin 2016 à 15:22
Bonjour
Essayez ceci
Sub Corres()
    Application.ScreenUpdating = False
    Sheets("COR").Select
    Range("H2:H" & [A100000].End(xlUp).Row).FormulaR1C1 = "=IFERROR(INDIRECT(""TXT!E"" & MATCH(RC[5],TXT!C26,0)),"""")"
    Range("H2:H" & [A100000].End(xlUp).Row).Value = Range("H2:H" & [A100000].End(xlUp).Row).Value
End Sub

Cdlt
0
siamens_duj Messages postés 192 Date d'inscription vendredi 20 juin 2014 Statut Membre Dernière intervention 14 février 2019 7
20 juin 2016 à 15:34
Bonjour et merci pour votre réponse.

J'ai appliqué votre code, seulement, j'ai ceci dans les cellules de la colonne H de "COR" :

=IFERROR(INDIRECT("TXT!E" & MATCH(RC[5],TXT!C26,0)),"")
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338 > siamens_duj Messages postés 192 Date d'inscription vendredi 20 juin 2014 Statut Membre Dernière intervention 14 février 2019
20 juin 2016 à 15:41
Que ce passe t-il quand vous faites dérouler le code en pas à pas?
0
siamens_duj Messages postés 192 Date d'inscription vendredi 20 juin 2014 Statut Membre Dernière intervention 14 février 2019 7
20 juin 2016 à 15:46
Rien, à "Application.ScreenUpdating = False" j'ai Li 3 col 1 puis Li 4 col 1 et ainsi de suite
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
20 juin 2016 à 15:49
Voici un exemple du fichier, effacer la colonne H et cliquez sur le bouton
https://www.cjoint.com/c/FFunWaPrD6w
Si ça ne convient pas, mettez un extrait de votre fichier (sans données confidentielles) sur cjoint.com.
0
siamens_duj Messages postés 192 Date d'inscription vendredi 20 juin 2014 Statut Membre Dernière intervention 14 février 2019 7
Modifié par siamens_duj le 20/06/2016 à 16:01
J'ai testé votre fichier et il fonctionne parfaitement, je ne comprends pas pourquoi cela ne fonctionne pas sur mon fichier ... Es ce parce que j'ai une version office 2007 ?

Aussi, devrais-je vous préciser qu'il arrive que des cellule de la colonne E de TXT soit vide ?

Je suis désolé je ne peux vraiment pas vous joindre mon fichier, tout son contenu est confidentiel. Cependant je vous remercie tout de même pour votre aide.
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
20 juin 2016 à 16:38
J'ai aussi excel 2007,
Même si des cellules de la colonnes E de TXT sont vides, ça fonctionne aussi, faites l'essai en effaçant des cellules de la colonne E.

Je suis désolé je ne peux vraiment pas vous joindre mon fichier, tout son contenu est confidentiel. Même en remplaçant les données confidentielles par des valeurs bidons? Dommage.
Cdlt
0
siamens_duj Messages postés 192 Date d'inscription vendredi 20 juin 2014 Statut Membre Dernière intervention 14 février 2019 7
23 juin 2016 à 08:44
Bonjour,

C'est bon j'ai réussi !

Merci beaucoup pour votre aide.
0