Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

faire correspondre un tcd d'un feuille1 avec un tableau d'une autre feuille

17 réponses
Avatar
bastientot
Bonjour,

voici mon probleme :

Dans un classeur j'ai une feuille lotissement et une feuille TCD avec
un tableau et j'aimerais reporter mes chiffres de ma feuille tcd vers
ma feuille lotissement mais je ne vois pas comment faire, car je dois
faire correspondre les infos de ma feuille tcd avec ma feuille
lotissement par critere :
ligne 4 puis ligne 5 puis ligne 6 & colonne A

et la je ne vois pas comment faire ?

Merci de votre aide.

voici un exemple de mon fichier :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijWq8ub2X.xls

10 réponses

1 2
Avatar
FFO
Salut à toi

Pour simplifier j'ai mis les données dans le même ordre ligne 6 de l'onglet
TCD et ligne 4 de l'onglet LOTISSEMENT

J'espère que celà ne représente pas pour toi un inconvénient

Je te propose ainsi ce code :

i = 7
Do While i < Sheets("TCD").Range("A65535").End(xlUp).Offset(1, 0).Row
Ligne = 0
On Error Resume Next
Ligne = Sheets("LOTISSEMENT").Range("C4", "C" &
Sheets("LOTISSEMENT").Range("C65535").End(xlUp).Row).Find(What:=Sheets("TCD").Range("A" & i), After:=Sheets("LOTISSEMENT").Range("C4"), LookIn:=xlValues, _
LookAt:=xlWhole).Row
If Ligne > 4 Then
For j = 0 To 11
If Sheets("LOTISSEMENT").Cells(Ligne, Range("O1").Column + j).Value = ""
Then
Sheets("LOTISSEMENT").Cells(Ligne, Range("O1").Column + j).Value =
Sheets("TCD").Cells(i, Range("AL1").Column + j).Value
End If
If Sheets("LOTISSEMENT").Cells(Ligne, Range("AA1").Column + j).Value = ""
Then
Sheets("LOTISSEMENT").Cells(Ligne, Range("AA1").Column + j).Value =
Sheets("TCD").Cells(i, Range("N1").Column + j).Value
End If
If Sheets("LOTISSEMENT").Cells(Ligne, Range("AM1").Column + j).Value = ""
Then
Sheets("LOTISSEMENT").Cells(Ligne, Range("AM1").Column + j).Value =
Sheets("TCD").Cells(i, Range("B1").Column + j).Value
End If
If Sheets("LOTISSEMENT").Cells(Ligne, Range("AY1").Column + j).Value = ""
Then
Sheets("LOTISSEMENT").Cells(Ligne, Range("AY1").Column + j).Value =
Sheets("TCD").Cells(i, Range("Z1").Column + j).Value
End If
Next
End If
i = i + 1
Loop

Sur ce lien ton document adapté ainsi :

http://www.cijoint.fr/cjlink.php?file=cj200902/cijuAFLY9O.xls

ouvres le et clique sur le bouton "Traitement" onglet LOTISSEMENT

Donnes moi ton avis !!!!
Avatar
bastientot
merci de ton aide

le seul probleme c que la feuille lotissement ne peu etre retouchée ni
modififer et ue la feuille tcd provient d'un TCD et je ne sais po
comment la mettre en forme pour recuperer le meme ordre que ma feuille
lotissement, mais sinon c exactement cela.

est il possible de modifier le format de mon tcd pour avoir la meme
chose que sur la feuille lotissement ?

grand merci de ton aide.


On 9 fév, 15:53, FFO wrote:
Salut à toi

Pour simplifier j'ai mis les données dans le même ordre ligne 6 de l' onglet
TCD et ligne 4 de l'onglet LOTISSEMENT

J'espère que celà ne représente pas pour toi un inconvénient

Je te propose ainsi ce code :

i = 7
   Do While i < Sheets("TCD").Range("A65535").End(xlUp).Offset(1, 0). Row
   Ligne = 0
   On Error Resume Next
   Ligne = Sheets("LOTISSEMENT").Range("C4", "C" &
Sheets("LOTISSEMENT").Range("C65535").End(xlUp).Row).Find(What:=Sheets( "TCD­").Range("A" & i), After:=Sheets("LOTISSEMENT").Range("C4"), LookI n:=xlValues, _
        LookAt:=xlWhole).Row
   If Ligne > 4 Then
   For j = 0 To 11
   If Sheets("LOTISSEMENT").Cells(Ligne, Range("O1").Column + j).Valu e = ""
Then
   Sheets("LOTISSEMENT").Cells(Ligne, Range("O1").Column + j).Value =
Sheets("TCD").Cells(i, Range("AL1").Column + j).Value
   End If
   If Sheets("LOTISSEMENT").Cells(Ligne, Range("AA1").Column + j).Val ue = ""
Then
   Sheets("LOTISSEMENT").Cells(Ligne, Range("AA1").Column + j).Value =
Sheets("TCD").Cells(i, Range("N1").Column + j).Value
   End If
   If Sheets("LOTISSEMENT").Cells(Ligne, Range("AM1").Column + j).Val ue = ""
Then
   Sheets("LOTISSEMENT").Cells(Ligne, Range("AM1").Column + j).Value =
Sheets("TCD").Cells(i, Range("B1").Column + j).Value
   End If
   If Sheets("LOTISSEMENT").Cells(Ligne, Range("AY1").Column + j).Val ue = ""
Then
   Sheets("LOTISSEMENT").Cells(Ligne, Range("AY1").Column + j).Value =
Sheets("TCD").Cells(i, Range("Z1").Column + j).Value
   End If
   Next
   End If
   i = i + 1
   Loop

Sur ce lien ton document adapté ainsi :

http://www.cijoint.fr/cjlink.php?file=cj200902/cijuAFLY9O.xls

ouvres le et clique sur le bouton "Traitement" onglet LOTISSEMENT

Donnes moi ton avis !!!!


Avatar
bastientot
remarque je pourrais reprendre mon tcd avec un =niania et reprendre le
bon format ??

sauf si tu a une solution .



On 9 fév, 15:53, FFO wrote:
Salut à toi

Pour simplifier j'ai mis les données dans le même ordre ligne 6 de l' onglet
TCD et ligne 4 de l'onglet LOTISSEMENT

J'espère que celà ne représente pas pour toi un inconvénient

Je te propose ainsi ce code :

i = 7
   Do While i < Sheets("TCD").Range("A65535").End(xlUp).Offset(1, 0). Row
   Ligne = 0
   On Error Resume Next
   Ligne = Sheets("LOTISSEMENT").Range("C4", "C" &
Sheets("LOTISSEMENT").Range("C65535").End(xlUp).Row).Find(What:=Sheets( "TCD­").Range("A" & i), After:=Sheets("LOTISSEMENT").Range("C4"), LookI n:=xlValues, _
        LookAt:=xlWhole).Row
   If Ligne > 4 Then
   For j = 0 To 11
   If Sheets("LOTISSEMENT").Cells(Ligne, Range("O1").Column + j).Valu e = ""
Then
   Sheets("LOTISSEMENT").Cells(Ligne, Range("O1").Column + j).Value =
Sheets("TCD").Cells(i, Range("AL1").Column + j).Value
   End If
   If Sheets("LOTISSEMENT").Cells(Ligne, Range("AA1").Column + j).Val ue = ""
Then
   Sheets("LOTISSEMENT").Cells(Ligne, Range("AA1").Column + j).Value =
Sheets("TCD").Cells(i, Range("N1").Column + j).Value
   End If
   If Sheets("LOTISSEMENT").Cells(Ligne, Range("AM1").Column + j).Val ue = ""
Then
   Sheets("LOTISSEMENT").Cells(Ligne, Range("AM1").Column + j).Value =
Sheets("TCD").Cells(i, Range("B1").Column + j).Value
   End If
   If Sheets("LOTISSEMENT").Cells(Ligne, Range("AY1").Column + j).Val ue = ""
Then
   Sheets("LOTISSEMENT").Cells(Ligne, Range("AY1").Column + j).Value =
Sheets("TCD").Cells(i, Range("Z1").Column + j).Value
   End If
   Next
   End If
   i = i + 1
   Loop

Sur ce lien ton document adapté ainsi :

http://www.cijoint.fr/cjlink.php?file=cj200902/cijuAFLY9O.xls

ouvres le et clique sur le bouton "Traitement" onglet LOTISSEMENT

Donnes moi ton avis !!!!


Avatar
FFO
Rebonjour à toi

Je te propose ce nouveau code qui tient compte de l'ordre des colonnes :

i = 7
Do While i < Sheets("TCD").Range("A65535").End(xlUp).Offset(1, 0).Row
Ligne = 0
On Error Resume Next
Ligne = Sheets("LOTISSEMENT").Range("C4", "C" &
Sheets("LOTISSEMENT").Range("C65535").End(xlUp).Row).Find(What:=Sheets("TCD").Range("A" & i), After:=Sheets("LOTISSEMENT").Range("C4"), LookIn:=xlValues, _
LookAt:=xlWhole).Row
If Ligne > 4 Then
n = 1
For j = 0 To 11
If n = 4 Then
n = 0
k = 0
End If
If n = 1 Then
k = 2
End If
If n = 2 Then
k = 0
End If
If n = 3 Then
k = -2
End If
If Sheets("LOTISSEMENT").Cells(Ligne, Range("O1").Column + j + k).Value =
"" Then
Sheets("LOTISSEMENT").Cells(Ligne, Range("O1").Column + j + k).Value =
Sheets("TCD").Cells(i, Range("AL1").Column + j).Value
End If
If Sheets("LOTISSEMENT").Cells(Ligne, Range("AA1").Column + j + k).Value
= "" Then
Sheets("LOTISSEMENT").Cells(Ligne, Range("AA1").Column + j + k).Value =
Sheets("TCD").Cells(i, Range("N1").Column + j).Value
End If
If Sheets("LOTISSEMENT").Cells(Ligne, Range("AM1").Column + j + k).Value
= "" Then
Sheets("LOTISSEMENT").Cells(Ligne, Range("AM1").Column + j + k).Value =
Sheets("TCD").Cells(i, Range("B1").Column + j).Value
End If
If Sheets("LOTISSEMENT").Cells(Ligne, Range("AY1").Column + j + k).Value
= "" Then
Sheets("LOTISSEMENT").Cells(Ligne, Range("AY1").Column + j + k).Value =
Sheets("TCD").Cells(i, Range("Z1").Column + j).Value
End If
n = n + 1
Next
End If
i = i + 1
Loop

En analysant le résultat j'ai constaté que pour une même catégorie dans le
tableau TCD sur une colonne 2 valeurs étaient possible exemple :

Colonne AR pour Texte 4 j'ai la valeur 16 (ligne 10) et la valeur 10 (ligne
15)
Colonne AR pour Texte 5 j'ai la valeur 11 (ligne 11) et la valeur 64 (ligne
16)

Seules les premières valeurs sont rapportées dans l'onglet LOTISSEMENT

Je ne peux pas ramener plusieurs valeurs pour une cellule donnée
Il faut choisir

Merci de m'apporter des précisions pour ces cas

Sur ce lien ton document adapté avec ce nouveau code :

http://www.cijoint.fr/cjlink.php?file=cj200902/cijPTLwbBV.xls

Fais des essais et dis moi !!!!
Avatar
bastientot
Bonjour,

Grand merci ton code fonctionne très bien.

encore une petite question sur un TCD comment garder la mise en forme
car a l'heure actuelle dès que je le refresh et bien je perds cette
mise en forme ??

merci d'avance.


On 10 fév, 08:48, FFO wrote:
Rebonjour à toi

Je te propose ce nouveau code qui tient compte de l'ordre des colonnes :

i = 7
   Do While i < Sheets("TCD").Range("A65535").End(xlUp).Offset(1, 0). Row
   Ligne = 0
   On Error Resume Next
   Ligne = Sheets("LOTISSEMENT").Range("C4", "C" &
Sheets("LOTISSEMENT").Range("C65535").End(xlUp).Row).Find(What:=Sheets( "TCD­").Range("A" & i), After:=Sheets("LOTISSEMENT").Range("C4"), LookI n:=xlValues, _
        LookAt:=xlWhole).Row
   If Ligne > 4 Then
   n = 1
   For j = 0 To 11
   If n = 4 Then
   n = 0
   k = 0
   End If
   If n = 1 Then
   k = 2
   End If
   If n = 2 Then
   k = 0
   End If
   If n = 3 Then
   k = -2
   End If
   If Sheets("LOTISSEMENT").Cells(Ligne, Range("O1").Column + j + k). Value =
"" Then
   Sheets("LOTISSEMENT").Cells(Ligne, Range("O1").Column + j + k).Val ue =
Sheets("TCD").Cells(i, Range("AL1").Column + j).Value
   End If
   If Sheets("LOTISSEMENT").Cells(Ligne, Range("AA1").Column + j + k) .Value
= "" Then
   Sheets("LOTISSEMENT").Cells(Ligne, Range("AA1").Column + j + k).Va lue =
Sheets("TCD").Cells(i, Range("N1").Column + j).Value
   End If
   If Sheets("LOTISSEMENT").Cells(Ligne, Range("AM1").Column + j + k) .Value
= "" Then
   Sheets("LOTISSEMENT").Cells(Ligne, Range("AM1").Column + j + k).Va lue =
Sheets("TCD").Cells(i, Range("B1").Column + j).Value
   End If
   If Sheets("LOTISSEMENT").Cells(Ligne, Range("AY1").Column + j + k) .Value
= "" Then
   Sheets("LOTISSEMENT").Cells(Ligne, Range("AY1").Column + j + k).Va lue =
Sheets("TCD").Cells(i, Range("Z1").Column + j).Value
   End If
   n = n + 1
   Next
   End If
   i = i + 1
   Loop

En analysant le résultat j'ai constaté que pour une même catégori e dans le
tableau TCD sur une colonne 2 valeurs étaient possible exemple :

Colonne AR pour Texte 4 j'ai la valeur 16 (ligne 10) et la valeur 10 (lig ne
15)
Colonne AR pour Texte 5 j'ai la valeur 11 (ligne 11) et la valeur 64 (lig ne
16)

Seules les premières valeurs sont rapportées dans l'onglet LOTISSEMEN T

Je ne peux pas ramener plusieurs valeurs pour une cellule donnée
Il faut choisir

Merci de m'apporter des précisions pour ces cas

Sur ce lien ton document adapté avec ce nouveau code :

http://www.cijoint.fr/cjlink.php?file=cj200902/cijPTLwbBV.xls

Fais des essais et dis moi !!!!


Avatar
bastientot
oups non il y a une erruer il ne tiens plus compte de la ligne avec
les OS wintel as400 etc... ??


On 10 fév, 10:15, wrote:
Bonjour,

Grand merci ton code fonctionne très bien.

encore une petite question sur un TCD comment garder la mise en forme
car a l'heure actuelle dès que je le refresh et bien je perds cette
mise en forme ??

merci d'avance.

On 10 fév, 08:48, FFO wrote:



> Rebonjour à toi

> Je te propose ce nouveau code qui tient compte de l'ordre des colonnes :

> i = 7
>    Do While i < Sheets("TCD").Range("A65535").End(xlUp).Offset(1, 0 ).Row
>    Ligne = 0
>    On Error Resume Next
>    Ligne = Sheets("LOTISSEMENT").Range("C4", "C" &
> Sheets("LOTISSEMENT").Range("C65535").End(xlUp).Row).Find(What:=Sheet s("TCD­­").Range("A" & i), After:=Sheets("LOTISSEMENT").Range("C4"), LookIn:=xlValues, _
>         LookAt:=xlWhole).Row
>    If Ligne > 4 Then
>    n = 1
>    For j = 0 To 11
>    If n = 4 Then
>    n = 0
>    k = 0
>    End If
>    If n = 1 Then
>    k = 2
>    End If
>    If n = 2 Then
>    k = 0
>    End If
>    If n = 3 Then
>    k = -2
>    End If
>    If Sheets("LOTISSEMENT").Cells(Ligne, Range("O1").Column + j + k ).Value =
> "" Then
>    Sheets("LOTISSEMENT").Cells(Ligne, Range("O1").Column + j + k).V alue =
> Sheets("TCD").Cells(i, Range("AL1").Column + j).Value
>    End If
>    If Sheets("LOTISSEMENT").Cells(Ligne, Range("AA1").Column + j + k).Value
> = "" Then
>    Sheets("LOTISSEMENT").Cells(Ligne, Range("AA1").Column + j + k). Value =
> Sheets("TCD").Cells(i, Range("N1").Column + j).Value
>    End If
>    If Sheets("LOTISSEMENT").Cells(Ligne, Range("AM1").Column + j + k).Value
> = "" Then
>    Sheets("LOTISSEMENT").Cells(Ligne, Range("AM1").Column + j + k). Value =
> Sheets("TCD").Cells(i, Range("B1").Column + j).Value
>    End If
>    If Sheets("LOTISSEMENT").Cells(Ligne, Range("AY1").Column + j + k).Value
> = "" Then
>    Sheets("LOTISSEMENT").Cells(Ligne, Range("AY1").Column + j + k). Value =
> Sheets("TCD").Cells(i, Range("Z1").Column + j).Value
>    End If
>    n = n + 1
>    Next
>    End If
>    i = i + 1
>    Loop

> En analysant le résultat j'ai constaté que pour une même catégo rie dans le
> tableau TCD sur une colonne 2 valeurs étaient possible exemple :

> Colonne AR pour Texte 4 j'ai la valeur 16 (ligne 10) et la valeur 10 (l igne
> 15)
> Colonne AR pour Texte 5 j'ai la valeur 11 (ligne 11) et la valeur 64 (l igne
> 16)

> Seules les premières valeurs sont rapportées dans l'onglet LOTISSEM ENT

> Je ne peux pas ramener plusieurs valeurs pour une cellule donnée
> Il faut choisir

> Merci de m'apporter des précisions pour ces cas

> Sur ce lien ton document adapté avec ce nouveau code :

>http://www.cijoint.fr/cjlink.php?file=cj200902/cijPTLwbBV.xls

> Fais des essais et dis moi !!!!- Masquer le texte des messages préc édents -

- Afficher le texte des messages précédents -


Avatar
bastientot
On 10 fév, 10:31, wrote:
oups non il y a une erruer il ne tiens plus compte de la ligne avec
les OS wintel as400 etc... ??

On 10 fév, 10:15, wrote:



> Bonjour,

> Grand merci ton code fonctionne très bien.

> encore une petite question sur un TCD comment garder la mise en forme
> car a l'heure actuelle dès que je le refresh et bien je perds cette
> mise en forme ??

> merci d'avance.

> On 10 fév, 08:48, FFO wrote:

> > Rebonjour à toi

> > Je te propose ce nouveau code qui tient compte de l'ordre des colonne s :

> > i = 7
> >    Do While i < Sheets("TCD").Range("A65535").End(xlUp).Offset(1, 0).Row
> >    Ligne = 0
> >    On Error Resume Next
> >    Ligne = Sheets("LOTISSEMENT").Range("C4", "C" &
> > Sheets("LOTISSEMENT").Range("C65535").End(xlUp).Row).Find(What:=She ets("TCD­­­").Range("A" & i), After:=Sheets("LOTISSEMENT").Range("C 4"), LookIn:=xlValues, _
> >         LookAt:=xlWhole).Row
> >    If Ligne > 4 Then
> >    n = 1
> >    For j = 0 To 11
> >    If n = 4 Then
> >    n = 0
> >    k = 0
> >    End If
> >    If n = 1 Then
> >    k = 2
> >    End If
> >    If n = 2 Then
> >    k = 0
> >    End If
> >    If n = 3 Then
> >    k = -2
> >    End If
> >    If Sheets("LOTISSEMENT").Cells(Ligne, Range("O1").Column + j + k).Value =
> > "" Then
> >    Sheets("LOTISSEMENT").Cells(Ligne, Range("O1").Column + j + k) .Value =
> > Sheets("TCD").Cells(i, Range("AL1").Column + j).Value
> >    End If
> >    If Sheets("LOTISSEMENT").Cells(Ligne, Range("AA1").Column + j + k).Value
> > = "" Then
> >    Sheets("LOTISSEMENT").Cells(Ligne, Range("AA1").Column + j + k ).Value =
> > Sheets("TCD").Cells(i, Range("N1").Column + j).Value
> >    End If
> >    If Sheets("LOTISSEMENT").Cells(Ligne, Range("AM1").Column + j + k).Value
> > = "" Then
> >    Sheets("LOTISSEMENT").Cells(Ligne, Range("AM1").Column + j + k ).Value =
> > Sheets("TCD").Cells(i, Range("B1").Column + j).Value
> >    End If
> >    If Sheets("LOTISSEMENT").Cells(Ligne, Range("AY1").Column + j + k).Value
> > = "" Then
> >    Sheets("LOTISSEMENT").Cells(Ligne, Range("AY1").Column + j + k ).Value =
> > Sheets("TCD").Cells(i, Range("Z1").Column + j).Value
> >    End If
> >    n = n + 1
> >    Next
> >    End If
> >    i = i + 1
> >    Loop

> > En analysant le résultat j'ai constaté que pour une même caté gorie dans le
> > tableau TCD sur une colonne 2 valeurs étaient possible exemple :

> > Colonne AR pour Texte 4 j'ai la valeur 16 (ligne 10) et la valeur 10 (ligne
> > 15)
> > Colonne AR pour Texte 5 j'ai la valeur 11 (ligne 11) et la valeur 64 (ligne
> > 16)

> > Seules les premières valeurs sont rapportées dans l'onglet LOTISS EMENT

> > Je ne peux pas ramener plusieurs valeurs pour une cellule donnée
> > Il faut choisir

> > Merci de m'apporter des précisions pour ces cas

> > Sur ce lien ton document adapté avec ce nouveau code :


J'ai rien ça marche bien désolé ....

vraiment grand merci



> >http://www.cijoint.fr/cjlink.php?file=cj200902/cijPTLwbBV.xls

> > Fais des essais et dis moi !!!!- Masquer le texte des messages préc édents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
FFO
Rebonjour à toi

"il ne tiens plus compte de la ligne avec
les OS wintel as400 etc... ??"

Peux tu préciser car je ne vois pas
Pour moi tout est correct

Tu n'as pas répondu à ma question :

En analysant le résultat j'ai constaté que pour une même catégorie dans le
tableau TCD sur une colonne 2 valeurs étaient possible exemple :

Colonne AR pour Texte 4 j'ai la valeur 16 (ligne 10) et la valeur 10 (ligne
15)
Colonne AR pour Texte 5 j'ai la valeur 11 (ligne 11) et la valeur 64 (ligne
16)

Seules les premières valeurs sont rapportées dans l'onglet LOTISSEMENT

Je ne peux pas ramener plusieurs valeurs pour une cellule donnée
Il faut choisir

Merci de m'apporter des précisions pour ces cas
Avatar
bastientot
non aucun probleme tout fonctionne bien

pour le probleme des valeur il n'y a pas de probleme car je ne devrais
jamais avoir de ligne avec un meme libelé.

et merci encore.



On 10 fév, 10:52, FFO wrote:
Rebonjour à toi

"il ne tiens plus compte de la ligne avec
les OS wintel as400 etc... ??"

Peux tu préciser car je ne vois pas
Pour moi tout est correct

Tu n'as pas répondu à ma question :

En analysant le résultat j'ai constaté que pour une même catégori e dans le
tableau TCD sur une colonne 2 valeurs étaient possible exemple :

Colonne AR pour Texte 4 j'ai la valeur 16 (ligne 10) et la valeur 10 (lig ne
15)
Colonne AR pour Texte 5 j'ai la valeur 11 (ligne 11) et la valeur 64 (lig ne
16)

Seules les premières valeurs sont rapportées dans l'onglet LOTISSEMEN T

Je ne peux pas ramener plusieurs valeurs pour une cellule donnée
Il faut choisir

Merci de m'apporter des précisions pour ces cas


Avatar
FFO
Rebonjour à toi
Pour la mise en forme du TCD il me faudrait un exemple et ta manière exacte
de procéder
Peux tu m'en dire plus dans ce sens
Merci
1 2