Afficher le contenu d'une cellule si... [Résolu]

Signaler
Messages postés
32
Date d'inscription
vendredi 11 février 2005
Statut
Membre
Dernière intervention
21 mars 2005
-
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
-
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

Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
si Ok coches reponse acceptée

It@li@
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
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@
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
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@
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
je te laisse refléchir au troisiéme !

It@li@
Messages postés
32
Date d'inscription
vendredi 11 février 2005
Statut
Membre
Dernière intervention
21 mars 2005

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
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Mes codes ne repondent pas à tes deux premiers besoins ?

It@li@
Messages postés
32
Date d'inscription
vendredi 11 février 2005
Statut
Membre
Dernière intervention
21 mars 2005

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
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
>>nobilis
que veux tu exactement ? simplifier ton dernier code ??

It@li@
Messages postés
32
Date d'inscription
vendredi 11 février 2005
Statut
Membre
Dernière intervention
21 mars 2005

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
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
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@
Messages postés
32
Date d'inscription
vendredi 11 février 2005
Statut
Membre
Dernière intervention
21 mars 2005

De A5 à B7 pour la tableau résultat
Messages postés
32
Date d'inscription
vendredi 11 février 2005
Statut
Membre
Dernière intervention
21 mars 2005

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)
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
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@
Messages postés
32
Date d'inscription
vendredi 11 février 2005
Statut
Membre
Dernière intervention
21 mars 2005

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
Messages postés
32
Date d'inscription
vendredi 11 février 2005
Statut
Membre
Dernière intervention
21 mars 2005

Désolé Italia, je n'avais pas vu ton programme, je l'essaie. Merci.
Messages postés
32
Date d'inscription
vendredi 11 février 2005
Statut
Membre
Dernière intervention
21 mars 2005

Absolument génial !

Un ENORME MERCI pour ton aide !