Répéter une macro sur plusieurs lignes avec exceptions

Bubif

XLDnaute Nouveau
Bonjour à toutes et à tous,
Cela fait quelques temps que je viens sur ce forum pour m'aider dans mon travail avec les questions des autres, mais cette fois ci c'est à mon tour de poser une question, en espérant que ça en aidera d'autres que moi ! =)

Cela fait deux jours que je sèche sur un problème et après mûre réflexion et beaucoup de recherches je n'ai pas su trouver une solution alors j'espère que vous pourrez m'aider.

Avant même de vous expliquer mon soucis je vous mets le code :
Code:
If Application.CountA(Range("AT20:BQ20")) <> 0 And Application.CountA(Range("BR20:BS20")) = 0 Then
        Range("BU20") = 1
    ElseIf Application.CountA(Range("AT20:BQ20")) = 0 And Application.CountA(Range("BR20:BS20")) <> 0 Then
        Range("BU20") = 0
    Else: Range("BU20") = "Pas de simulation en cours"
    End If

Ainsi vous pouvez mieux voir la structure. En fait, il faut que j'applique cette petite macro de manière identique mais aux lignes 20, 22, 23, 24 et 26. Exactement la même mais avec le numéro des lignes qui change ! Et cette macro marche comme je veux pour l'exemple donné !

Je me suis essayé à tenter des boucles for each next avec la création d'un vecteur Array(20,22,23,24,26) mais cela n'a pas marché.

Comme il n'y a que 5 macros je pourrais éventuellement faire du copier/coller mais il s'avère que cela fait planter Excel (d'ailleurs si jamais vous avez une idée de pourquoi, je suis preneur ! mais je pense que cela doit entrer en conflit avec une autre macro).

Voilà, j'espère que c'est assez clair ! Je ne peux pas vous donner le contexte entier mais je pense qu'il n'y en a pas besoin pour ma question de toute façon !

Merci d'avance, au moins pour la lecture du soucis ! ^^
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Répéter une macro sur plusieurs lignes avec exceptions

Bonjour Bubif, et bienvenue sur le forum

avec ce code:
Code:
Sub Macro1()
lignes = Array(20, 22, 23, 24, 26)
For j = 1 To 5
i = lignes(j - 1)
If Application.CountA(Range("AT" & i & ":BQ" & i)) <> 0 And Application.CountA(Range("BR" & i & ":BS" & i)) = 0 Then
        Range("BU" & i) = 1
    ElseIf Application.CountA(Range("AT" & i & ":BQ" & i)) = 0 And Application.CountA(Range("BR" & i & ":BS" & i)) <> 0 Then
        Range("BU" & i) = 0
    Else: Range("BU" & i) = "Pas de simulation en cours"
    End If
Next j
End Sub
à+
Philippe
 

Bubif

XLDnaute Nouveau
Re : Répéter une macro sur plusieurs lignes avec exceptions

Salut phlaurent55 !

J'ai testé ton code et je crois que ça marche au poil !
Malheureusement Excel plante à nouveau, mais je pense que cela provient d'un autre endroit, je vais donc vérifier ça !

Merci encore !!!
 

Discussions similaires

Réponses
2
Affichages
140
Réponses
26
Affichages
365

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa