Copier une cellule en fonction d'autres cellules

Résolu/Fermé
siamens_duj
Messages postés
191
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
191
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
2235
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
5 mars 2022
332
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
191
Date d'inscription
vendredi 20 juin 2014
Statut
Membre
Dernière intervention
14 février 2019
8
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
2235
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
5 mars 2022
332 > siamens_duj
Messages postés
191
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
191
Date d'inscription
vendredi 20 juin 2014
Statut
Membre
Dernière intervention
14 février 2019
8
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
2235
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
5 mars 2022
332
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
191
Date d'inscription
vendredi 20 juin 2014
Statut
Membre
Dernière intervention
14 février 2019
8
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
2235
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
5 mars 2022
332
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
191
Date d'inscription
vendredi 20 juin 2014
Statut
Membre
Dernière intervention
14 février 2019
8
23 juin 2016 à 08:44
Bonjour,

C'est bon j'ai réussi !

Merci beaucoup pour votre aide.
0