Prise en compte de la fonction IF

ascarter

XLDnaute Junior
Bonjour à tous,j'ai un problème dans mon programme avec la fonction IF.Dans le morceau de programme ci dessous, le programme n'éxécute que les deux derniers if. Comment parvenir à ce qu'il prenne en compte toutes les conditions.

If Cells(3, 2) = "" Then
Range("E55:E85").Value = ""
Else
Range("E55").Value = Sheets("Données CR").Cells(3, 3).Value
End If
If Cells(3, 2) = FAUX Then
Range("E55:E85").Value = ""
End If

If Cells(4, 2) = "" Then
Range("E55:E85").Value = ""
Else
Range("E55").Value = Sheets("Données CR").Cells(4, 3).Value
End If
If Cells(4, 2) = FAUX Then
Range("E55:E85").Value = ""
End If

Merci d'avance pour vos réponses.
 

Misange

XLDnaute Barbatruc
Re : Prise en compte de la fonction IF

Bonjour,
Que veux tu dire par "toutes les conditions"

If cells(3,2)="" AND cells(4,2)="" AND.... then
ou bien en fonction de ce que tu souhaites OR à la place de AND, voire une combinaison des deux
 

ascarter

XLDnaute Junior
Re : Prise en compte de la fonction IF

Sa ne prend en compte que le dernier paragraphe alors que ce n'est pas la même condition. J'imagine que c'est parce que je veux placer le résultat au même endroit sur la feuille. Mais vus que ce n'est pas la même condition. Je ne vois pas comment faire.
 

Misange

XLDnaute Barbatruc
Re : Prise en compte de la fonction IF

Désolée mais avec tes explications, je ne comprends pas ce que tu souhaites
joins un classeur exemple comme c'est recommandé dans la charte en indiquant clairement les différentes situations que tu peux rencontrer (cellules vides, FAUX... ) avec quelles combinaisons entre elles et le résultat que tu souhaites. Fais plustot ça sur un classeur à part, avec juste le strict nécessaire reproduisant la totalité des situations que tu rencontres mais pas plus.
 

ascarter

XLDnaute Junior
Re : Prise en compte de la fonction IF

Je vous met en PJ un fichier ou le problème apparaît.En effet lorsque B3 est vrai,rien n'apparait en E55.Par contre si B4 est vrai quelque chose apparait.Il faudrait que E55 se remplise si: B3 VRAI toute seule ou B4 VRAI toute seule,voire les deux en même temps.Merci pour votre aide.
 

Pièces jointes

  • Classeur1.xls
    29.5 KB · Affichages: 37
  • Classeur1.xls
    29.5 KB · Affichages: 39
  • Classeur1.xls
    29.5 KB · Affichages: 43

Gorfael

XLDnaute Barbatruc
Re : Prise en compte de la fonction IF

Salut ascarter et le forum
Code:
Sub affichage()
Dim Cel As Range
For Each Cel In Range([B2], [B6])
    If Cel = True Then
        Cells(55, Cel.Row + 2) = Sheets("Données CR").Cells(Cel.Row, 3)
    Else
        Range(Cells(55, Cel.Row + 2), Cells(85, Cel.Row + 2)) = ""
    End If
Next Cel
End Sub
Pour toutes les cellules de B2 à B6, si la cellule = Vrai, on inscrit à la ligne 55, colonne = Ligne de Cel +2, la valeur de la feuille données CR, colonne C, ligne de Cel
Sinon, on remplace toutes les valeurs des lignes 55 à 85 par "" (Pas trop logique, mais comme je ne connais pas tout...)
A+
 

ascarter

XLDnaute Junior
Re : Prise en compte de la fonction IF

Bonjour à tous et toutes,
J'ai deux feuilles,une feuille de sélection+affichage et une feuille qui contient les données. Dans la premiére feuille, je fais une sélection grâce a des cases à cocher. En cliquant sur le bouton "VALIDER" j'aimerais que le tableau se remplisse avec les données de la feuille "Données CR". J'espére avoir était clair. Merci d'avance pour vos réponses.
 

Pièces jointes

  • Classeur1.xls
    29.5 KB · Affichages: 40
  • Classeur1.xls
    29.5 KB · Affichages: 46
  • Classeur1.xls
    29.5 KB · Affichages: 44

Modeste geedee

XLDnaute Barbatruc
Re : Prise en compte de la fonction IF

Bonsour®
Dans le morceau de programme ci dessous, le programme n'éxécute que les deux derniers if. Comment parvenir à ce qu'il prenne en compte toutes les conditions.

If Cells(3, 2) = "" Then
Range("E55:E85").Value = ""
Else
Range("E55").Value = Sheets("Données CR").Cells(3, 3).Value
End If
If Cells(3, 2) = FAUX Then
Range("E55:E85").Value = ""
End If

If Cells(4, 2) = "" Then
Range("E55:E85").Value = ""
Else
Range("E55").Value = Sheets("Données CR").Cells(4, 3).Value
End If
If Cells(4, 2) = FAUX Then
Range("E55:E85").Value = ""
End If

Merci d'avance pour vos réponses.

VBA ne comprend que l'anglais !!!
pour un controle booléen, il faut écrire Cells(4, 2) = False

FAUX est ici interprété comme une variable qui peut contenir n'importe quelle valeur
 

Statistiques des forums

Discussions
312 520
Messages
2 089 301
Membres
104 092
dernier inscrit
karbone57