XL 2019 boucles combinées

nadem0068

XLDnaute Junior
Bonjour à tous,
une fois de plus je me tourne vers vous afin de sollicité vos lumières.
je souhaite combiner plusieurs boucle ensemble mais je ne trouve pas la bonne méthode pour arriver à mes fin.
j'ai une boucle " for" dans la quelle ce trouve une boucle "for each" jusque la tout va bien.
elle me permet de trouvé le nombre de valeur "x" dans une plage donnée (une ligne).
je voudrais reproduire le calcule sur chaque ligne grâce à une autre boucle mais je coince.
je joint un petit fichier pour être plus explicite.

Merci d'avance à tout ceux qui prendrons le temps de ce pencher sur mon problème.;)

Bonne fête de pâques
 

Pièces jointes

  • boucles combinées.xlsm
    17.4 KB · Affichages: 7

Lolote83

XLDnaute Barbatruc
Re bonjour,
Sinon avec du VBA
Code:
Sub Test()
    Application.ScreenUpdating = False
    Range("L2:U6").ClearContents                                'On efface le dernier contenu
    For F = 9 To 18                                             'On boucle sur les valeurs de A9 à A18 (Val1, Val2, Val3 .....)
        xVal = Cells(F, "A")                                    'On recupère dans une variable le contenu
        For Lig = 2 To 6                                        'On boucle sur les lignes 2 à 6
            xCpt = 0                                            'On met le compteur à zéro
            For Each xCell In Range("B" & Lig & ":K" & Lig)     'On parcours toutes les colonnes de B à K de la ligne (Lig)
                If xCell.Value = xVal Then                      'Si la cellule testée = varaible Val
                    xCpt = xCpt + 1                             'On incrémente le compteur
                End If                                          'Fin Si
            Next xCell                                          'Fin boucle colonne
            Cells(Lig, 3 + F) = xCpt                            'On ecrit dans la cellule (Lig, 3+F) la valeur du compteur
        Next Lig                                                'Fin boucle Lig
    Next F                                                      'Fin boucle F
    Application.ScreenUpdating = True
End Sub

Explication du 3+F
F va de 9 à 18 et vu que l'on souhaite écrire les réponses à partir de la colonne 12 (Colonne L),
- Quand F vaut 9 alors F+3 = 12 donc colonne L
- Quand F vaut 4 alors F+3 = 13 donc colonne M
- Quand F vaut 5 alors F+3 = 14 donc colonne N ........

@+ Lolote83
 
Dernière édition:

nadem0068

XLDnaute Junior
Re bonjour,
Sinon avec du VBA
Code:
Sub Test()
    Application.ScreenUpdating = False
    Range("L2:U6").ClearContents                                'On efface le dernier contenu
    For F = 9 To 18                                             'On boucle sur les valeurs de A9 à A18 (Val1, Val2, Val3 .....)
        xVal = Cells(F, "A")                                    'On recupère dans une variable le contenu
        For Lig = 2 To 6                                        'On boucle sur les lignes 2 à 6
            xCpt = 0                                            'On met le compteur à zéro
            For Each xCell In Range("B" & Lig & ":K" & Lig)     'On parcours toutes les colonnes de B à K de la ligne (Lig)
                If xCell.Value = xVal Then                      'Si la cellule testée = varaible Val
                    xCpt = xCpt + 1                             'On incrémente le compteur
                End If                                          'Fin Si
            Next xCell                                          'Fin boucle colonne
            Cells(Lig, 3 + F) = xCpt                            'On ecrit dans la cellule (Lig, 3+F) la valeur du compteur
        Next Lig                                                'Fin boucle Lig
    Next F                                                      'Fin boucle F
    Application.ScreenUpdating = True
End Sub

Explication du 3+F
F va de 9 à 18 et vu que l'on souhaite écrire les réponses à partir de la colonne 12 (Colonne L),
- Quand F vaut 9 alors F+3 = 12 donc colonne L
- Quand F vaut 4 alors F+3 = 13 donc colonne M
- Quand F vaut 5 alors F+3 = 14 donc colonne N ........

@+ Lolote83
Super merci beaucoup.
en plus les explication ligne par ligne me permette de bien comprendre le code.

belle journée à toi.;)
 

Discussions similaires

Réponses
7
Affichages
287
Réponses
4
Affichages
296
  • Résolu(e)
Microsoft 365 Boucle FOR
Réponses
7
Affichages
416

Statistiques des forums

Discussions
315 088
Messages
2 116 087
Membres
112 656
dernier inscrit
VNVT