0
votes

Tandis que la boucle double condition de la valeur de la cellule et de la condition de couleur

J'essaie de créer des règles pour une boucle "tandis que".

Je veux boucle pendant:

  • Les prochaines cellules "A" ne sont pas vides

    et

    • La couleur d'arrière-plan des cellules suivantes est différente de 10092390.

      J'ai essayé ce code VBA mais Excel n'accepte pas: xxx


1 commentaires

S'il vous plaît faire pas Modifier les questions d'une manière qui invalide les réponses données. Par tous signifie ajouter des informations à la question si nécessaire (ou poser une autre question) mais, si vous invalidez des réponses, il enfreint la nature de Q & A du débordement de la pile.


3 Réponses :


2
votes
While Not IsEmpty(Cells(Last + 1, 1)) _
And Cells(Last + 1, 1).Interior.Color <> 10092390

2 commentaires

Oui désolé je viens d'essayer tant d'affection que j'ordide de supprimer "= false". Nouveau code ici: tandis que (ISPTTY (cellules (((dernier + 1), 1)) et non (cellules (((dernier + 1), 1)). Intérieur.color) = 10092390) = 10092390)


@AntoineineDrgouge: Comme je l'ai mentionné: remplacer = false par non () est une simplification. Vous devrez peut-être repenser la chaîne de condition entière, y compris cette simplification.



0
votes

Il y avait beaucoup de problèmes avec vos crochets, pouvez-vous essayer ce qui suit: xxx

pour vos informations: lors de la programmation, il est courant de remplacer si ( = faux) par si (pas )


0 commentaires

0
votes

Si vous voulez être dans la boucle, vous devez construire des conditions exactement inversement ... s'il vous plaît essayez l'exemple suivant:

Sub testWhileCondition()
 Dim sh As Worksheet, Last As Long
 Set sh = ActiveSheet
  Last = 2
  While Not IsEmpty(sh.cells(Last + 1, 1)) Or sh.cells(Last + 1, 1).Interior.Color = 10092390
    Debug.Print sh.cells(Last + 1, 1).Address
    'do here whatever you need.....
    Last = Last + 1
  Wend
End Sub


1 commentaires

Les commentaires ne sont pas pour une discussion prolongée; Cette conversation a été déplacé pour discuter .