Afficher le contenu d'une cellule si...

Résolu
nobilis Messages postés 32 Date d'inscription vendredi 11 février 2005 Statut Membre Dernière intervention 21 mars 2005 - 17 févr. 2005 à 13:09
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 - 18 févr. 2005 à 12:55
Bonjour,

Je voudrais pouvoir afficher le contenu d'une cellule A9 dans la cellule C618 si au moins une cellule de la ligne 15 comprise entre les colonnes C et Z contient la valeur "JT".

Je voudrais aussi pouvoir afficher le contenu de la cellule A17 dans la cellule C618 (ou C619 si C618 déjà remplie) si au moins une cellule de la ligne 23 comprise entre les colonnes C et Z contient la valeur "JT".

Enfin, je voudrais pouvoir afficher le contenu de la cellule A25 dans la cellule C618 (ou C619 si C618 remplie ou C620 si C618 et C619 remplies) si au moins une cellule de la ligne 31 comprise entre les colonnes C et Z contient la valeur "JT".

En vous remerciant d'avance pour votre aide !

16 réponses

cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
18 févr. 2005 à 12:55
si Ok coches reponse acceptée

It@li@
3
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
17 févr. 2005 à 13:43
For i=3 to 26 'de c à z
If Cells(15, i).Value = "JT" Then
Cells(618, 3).Value =Cells(9, 1).Value
exit for
end if
Next

It@li@
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
17 févr. 2005 à 13:47
For i=3 to 26 'de c à z
If Cells(23, i).Value = "JT" Then
if Cells(618, 3).Value="" Then
Cells(618, 3).Value=Cells(17, 1).Value
exit for
else
Cells(619, 3).Value=Cells(17, 1).Value
exit for
end if
end if
Next

It@li@
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
17 févr. 2005 à 13:48
je te laisse refléchir au troisiéme !

It@li@
0

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

Posez votre question
nobilis Messages postés 32 Date d'inscription vendredi 11 février 2005 Statut Membre Dernière intervention 21 mars 2005 1
17 févr. 2005 à 16:42
Avec ce programme, voir ci-dessous, j'arrive à afficher un tableau (618, 3 à 632, 3) reprenant les valeurs de la 1ère colonne (ligne 9 (ligne - 6), 17, 25, 33,...).

Le problème est le suivant, le programme affiche plusieurs fois les mêmes valeurs dans le tableau final (618, 3 à 632, 3) or je voudrais que les mêmes valeurs ne se retrouvent pas dans ce tableau.

Concrètement, dans la première colonne (ligne 9, 17, 25, 33,...), j'insère un sujet de reportage par cellule. Mon programme actuel fait que si "JT" est inscrit en ligne 15, 23,31,... sur n'importe quelle colonne, le sujet de la première colonne est ajouté dans le tableau final.
OR je voudrais, ne pas retrouver deux fois le même sujet. Donc, si JT apparait sur la même ligne dans plusieurs colonnes, le sujet ne doit pas apparaître plusieurs fois dans le tableau final.

Merci

For li_col = 3 To 26 'de c à z
For ligne = 15 To 407 Step 8
If Cells(ligne, li_col).Value = "JT" Then

If Cells(618, 3).Value = "" Then
Cells(618, 3).Value = Cells(ligne - 6, 1).Value
Else
If Cells(619, 3).Value = "" Then
Cells(619, 3).Value = Cells(ligne - 6, 1).Value
Else
If Cells(620, 3).Value = "" Then
Cells(620, 3).Value = Cells(ligne - 6, 1).Value
Else
If Cells(621, 3).Value = "" Then
Cells(621, 3).Value = Cells(ligne - 6, 1).Value
Else
If Cells(622, 3).Value = "" Then
Cells(622, 3).Value = Cells(ligne - 6, 1).Value
Else
If Cells(623, 3).Value = "" Then
Cells(623, 3).Value = Cells(ligne - 6, 1).Value
Else
If Cells(624, 3).Value = "" Then
Cells(624, 3).Value = Cells(ligne - 6, 1).Value
Else
If Cells(625, 3).Value = "" Then
Cells(625, 3).Value = Cells(ligne - 6, 1).Value
Else
If Cells(626, 3).Value = "" Then
Cells(626, 3).Value = Cells(ligne - 6, 1).Value
Else
If Cells(627, 3).Value = "" Then
Cells(627, 3).Value = Cells(ligne - 6, 1).Value
Else
If Cells(628, 3).Value = "" Then
Cells(628, 3).Value = Cells(ligne - 6, 1).Value
Else
If Cells(629, 3).Value = "" Then
Cells(629, 3).Value = Cells(ligne - 6, 1).Value
Else
If Cells(630, 3).Value = "" Then
Cells(631, 3).Value = Cells(ligne - 6, 1).Value
Else
If Cells(631, 3).Value = "" Then
Cells(631, 3).Value = Cells(ligne - 6, 1).Value
Else
If Cells(632, 3).Value = "" Then
Cells(632, 3).Value = Cells(ligne - 6, 1).Value
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If



Next ligne
Next li_col
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
17 févr. 2005 à 16:56
Mes codes ne repondent pas à tes deux premiers besoins ?

It@li@
0
nobilis Messages postés 32 Date d'inscription vendredi 11 février 2005 Statut Membre Dernière intervention 21 mars 2005 1
17 févr. 2005 à 19:53
D'abord, grand Merci Italia pour ton aide.

En fait, tes codes fonctionnent mais quand je veux les développer car j'ai plus de valeurs, de cellules à travailler, je suis obligé de faire des développements et je n'obtiens pas ce que je veux. Il est vrai que je ne suis pas très doué

Mon problème avec le programme ci-dessus est le suivant, le programme affiche plusieurs fois les mêmes valeurs dans le tableau final (618, 3 à 632, 3) or je voudrais que les mêmes valeurs ne se retrouvent pas dans ce tableau.

Merci d'avance pour votre aide
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
18 févr. 2005 à 08:56
>>nobilis
que veux tu exactement ? simplifier ton dernier code ??

It@li@
0
nobilis Messages postés 32 Date d'inscription vendredi 11 février 2005 Statut Membre Dernière intervention 21 mars 2005 1
18 févr. 2005 à 09:32
Je vais essayer d'être plus clair en simplifiant mon exemple.

J'ai deux tableaux : un tableau d'encodage des données et un tableau qui fournit les résultats.

Le tableau d'encodage est composé des colonnes A, B, C, D et des lignes 1,2 et 3.

Il contient les valeurs suivantes :



Sujet 1
,
JT
,JT <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />

,
JT
,
----

Sujet 2

,
JT

,
X

,
X
,
----

Sujet 3

,
JT

,
X

,
JT


Le tableau des résultats doit donner le résultat suivant quand je lance la macro :


Résultat 1

,
Sujet 1

,
----

Résultat 2

,
Sujet 2

,
----

Résultat 3

,
Sujet 3

Donc, si JT apparaît au moins une fois dans la ligne 1 du tableau d'encodage, il faut faire apparaître le sujet 1 dans le tableau des résultats.

Si JT apparaît au moins une fois dans la ligne 2 du tableau d'encodage, il faut faire aparaître le sujet 2 dans le tableau des résultats. Idem pour ligne 3.

Attention, il faut que les sujets s'affichent l'un en-dessous de l'autre et faire en sorte que si la première ligne du tableau de résultat contient déjà un sujet, il faut l'encoder à la ligne suivante. Idem pour la deuxième ligne.

Voilà, j'espère avoir été plus clair et je réfléchis de mon côté. Si on arrive à comprendre la logique pour cet exemple, je pourrais l'appliquer à mon problème.

Merci d'avance
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
18 févr. 2005 à 09:52
Ok le tableau d'encode va de la ligne de la plage A1 à D3

Quelle est la plage ou le Resultat s'affiche ?

It@li@
0
nobilis Messages postés 32 Date d'inscription vendredi 11 février 2005 Statut Membre Dernière intervention 21 mars 2005 1
18 févr. 2005 à 10:31
De A5 à B7 pour la tableau résultat
0
nobilis Messages postés 32 Date d'inscription vendredi 11 février 2005 Statut Membre Dernière intervention 21 mars 2005 1
18 févr. 2005 à 10:50
Résultat 1 (A5)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

,
Sujet 1 (B5)

,
----

Résultat 2 (A6)

,
Sujet 2 (B6)

,
----

Résultat 3 (A7)

,
Sujet 3 (B7)
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
18 févr. 2005 à 11:45
Essayes :

j=5
For i=1 to 3 ' pour les Lignes 1 à 3
If Cells(i, 2).Value="JT" or Cells(i, 3).Value="JT" or Cells(i, 4).Value="JT" Then

Cells(j, 1).Value="Résultat " & j-4

Cells(j, 2).Value=Cells(i, 1).Value

j=j+1
end if
Next

It@li@
0
nobilis Messages postés 32 Date d'inscription vendredi 11 février 2005 Statut Membre Dernière intervention 21 mars 2005 1
18 févr. 2005 à 11:54
OK, j'y suis arrivé (dans mon vrai programme, voir ci-dessous) !

Maintenant, je voudrais que ce programme fonctionne pour les lignes 23, 31, 39, 47,...,407. Mais ça ne fonctionne pas avec une boucle for...next.

Merci d'avance
If Cells(15, 3).Value "JT" Or Cells(15, 4).Value "JT" Or Cells(15, 5).Value = "JT" Or Cells(15, 6).Value = "JT" Or Cells(15, 7).Value = "JT" Or Cells(15, 8).Value = "JT" Or Cells(15, 9).Value = "JT" Or Cells(15, 10).Value = "JT" Or Cells(15, 11).Value = "JT" Or Cells(15, 12).Value = "JT" Or Cells(15, 13).Value = "JT" Or Cells(15, 14).Value = "JT" Or Cells(15, 15).Value = "JT" Or Cells(15, 16).Value = "JT" Or Cells(15, 17).Value = "JT" Or Cells(15, 18).Value = "JT" Or Cells(15, 19).Value = "JT" Or Cells(15, 20).Value = "JT" Or Cells(15, 21).Value = "JT" Or Cells(15, 22).Value = "JT" Or Cells(15, 23).Value = "JT" Or Cells(15, 24).Value = "JT" Or Cells(15, 25).Value = "JT" Or Cells(15, 26).Value = "JT" Then


If Cells(618, 3).Value = "" Then
Cells(618, 3).Value = Cells(9, 1).Value ElseIf Cells(619, 3).Value "" Then Cells(619, 3).Value Cells(9, 1).Value ElseIf Cells(620, 3).Value "" Then Cells(620, 3).Value Cells(9, 1).Value ElseIf Cells(621, 3).Value "" Then Cells(622, 3).Value Cells(9, 1).Value ElseIf Cells(622, 3).Value "" Then Cells(623, 3).Value Cells(9, 1).Value ElseIf Cells(623, 3).Value "" Then Cells(624, 3).Value Cells(9, 1).Value ElseIf Cells(624, 3).Value "" Then Cells(625, 3).Value Cells(9, 1).Value ElseIf Cells(625, 3).Value "" Then Cells(626, 3).Value Cells(9, 1).Value ElseIf Cells(626, 3).Value "" Then Cells(627, 3).Value Cells(9, 1).Value ElseIf Cells(627, 3).Value "" Then Cells(628, 3).Value Cells(9, 1).Value ElseIf Cells(628, 3).Value "" Then Cells(629, 3).Value Cells(9, 1).Value ElseIf Cells(629, 3).Value "" Then Cells(630, 3).Value Cells(9, 1).Value ElseIf Cells(630, 3).Value "" Then Cells(631, 3).Value Cells(9, 1).Value ElseIf Cells(631, 3).Value "" Then Cells(632, 3).Value Cells(9, 1).Value
End If


End If
0
nobilis Messages postés 32 Date d'inscription vendredi 11 février 2005 Statut Membre Dernière intervention 21 mars 2005 1
18 févr. 2005 à 12:02
Désolé Italia, je n'avais pas vu ton programme, je l'essaie. Merci.
0
nobilis Messages postés 32 Date d'inscription vendredi 11 février 2005 Statut Membre Dernière intervention 21 mars 2005 1
18 févr. 2005 à 12:09
Absolument génial !

Un ENORME MERCI pour ton aide !
0
Rejoignez-nous