Recherche d'une condition et résultat

Tok-Ra

XLDnaute Junior
Recherche d'une condition de cellule en VBA

Bonsoir le forum (ça fait longtemps !!!)

Alors voila, j'ai de nouveau un soucis !

Je vous explique:

Dans mon classeur j'ai deux onglet, un de récapitulatif (que j'expliquerais tout à l'heure) et un d'importation de donnée.

Celui d'importation de donnée se créer lors de l'étape de l'import, ça, ça fonctionne bien.

Maintenant, ce que je cherche à faire, c'est de vérifier dans l'onglet "Importation" que chaque ligne, sur la colonne H comporte une cellule en jaune (format date) si oui, alors je reporte sur l'onglet "Recap" les infos de la ligne entiere en décomposant toute les colonne de l'importation.

En gros pour expliquer schématiquement ce que je veux faire c'est:

Si dans Importation je rencontre une cellule jaune
Alors je reporte la colonne A
Je vérifie si la colonne B contient une cellule jaune sur la meme ligne, si oui, je reporte aussi et idem pour la colonne I J K

Tout les report se font dans l'onglet Recap

Est-ce possible ? Est ce que quelqu'un peu me filer une tite piste ? Car en fait, Il me faut juste une premiere base pour vérifier que la colonne soit jaune et si oui, je reporte la cellule ailleurs, je me débrouillerais du reste !

Merci pour votre aide !
 

Pièces jointes

  • Matrice Modif Mix.zip
    18.4 KB · Affichages: 30
Dernière édition:

job75

XLDnaute Barbatruc
Re : Recherche d'une condition et résultat

Bonjour,

Pour vérifier que la cellule courante Cel est colorée en jaune, utilisez le test :

Code:
If Cel.Interior.ColorIndex = 6 Then
----------------------
End If

Apparemment vous savez écrire des macros, vous ne connaissiez pas ?

A+
 

Le Pierre

XLDnaute Junior
Re : Recherche d'une condition et résultat

bonjour

essaye ceci :
Code:
Sub Macro1()
    Sheets("Importation").Select
    LigAcopier = 2
    For Lig = 1 To 700
        Flag = 0
        For Col = 1 To 9
            If Cells(Lig, Col).Interior.ColorIndex = 6 Then
                Flag = 1: Exit For
            End If
        Next Col
        If Flag = 1 Then
            Rows(Lig & ":" & Lig).Copy
            Sheets("Récap des modifs").Cells(LigAcopier, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=False
            LigAcopier = LigAcopier + 1
        End If
    Next Lig
    Sheets("Récap des modifs").Select
    Beep
End Sub
à plus
 

Tok-Ra

XLDnaute Junior
Re : Recherche d'une condition et résultat

Bonjour,

Pour vérifier que la cellule courante Cel est colorée en jaune, utilisez le test :

Code:
If Cel.Interior.ColorIndex = 6 Then
----------------------
End If

Apparemment vous savez écrire des macros, vous ne connaissiez pas ?

A+

Bonsoir le forum !

Merci pour vos réponse !
Oui tout à fait, je sais écrire des macro, enfin, je me débrouille, et pour la couleur, oui je sais aussi mais la ou je bloque, c'est écrire une macro qui fasse:
Code:
Dans la colonne H
  Si une cellule est jaune alors
    Je récupere la ligne puis je prend la cellule de cette ligne(-1) de la colonne A pour la reporter sur un autre onglet
      Si la cellule de la colonne B sur la même ligne est jaune alors je reporte la valeur sur un autre onglet

etc....

Donc voila, en gros, je suis pas sur d'etre totalement clair et je m'en excuse mais c'est pas simple à expliquer !

Le Pierre merci à toi d'essayer, mais cela ne correspond hélas pas à ce que je veux, cependant, c'est une piste à suivre. Merci pour ton aide !

Biz !
 
Dernière édition:

Tok-Ra

XLDnaute Junior
Re : Recherche d'une condition et résultat

Bonsoir le forum !

Merci job75 grace à toi, j'ai un code qui marche.
En voici le final:

Code:
Sub Traitement()

' On désactive le rafraichissement écran pour gagner du temps de traitement
Application.ScreenUpdating = False


Sheets("Importation").Visible = True
Sheets("Importation").Select
    
' On lance la bouche sur toute les cellule jaune trouvé sur la date de modif
LigAcopier = 2
    For Lig = 1 To Range("A65536").End(xlUp).Row + 1
        Flag = 0
        If Cells(Lig, 8).Interior.ColorIndex = 6 Then
            Flag = 1:
        End If
        If Flag = 1 Then
        
            ' On stocke nos variables récupérées
            v1 = Range("A" & Lig - 1)
            v2 = Range("B" & Lig - 1)
            v3 = Range("B" & Lig)
            v4 = Range("E" & Lig)
            v5 = Range("F" & Lig - 1)
            v6 = Range("F" & Lig)
            v7 = Range("H" & Lig)
            v8 = Range("I" & Lig - 1)
            v9 = Range("I" & Lig)
            v10 = Range("J" & Lig - 1)
            v11 = Range("J" & Lig)
            v12 = Range("K" & Lig - 1)
            v13 = Range("K" & Lig)
            v14 = Range("L" & Lig)
            v15 = Range("M" & Lig)

            ' On envoi nos variable sur la feuille de récap
            Sheets("Récap des modifs").Range("B" & LigAcopier + 6) = v1
            Sheets("Récap des modifs").Range("C" & LigAcopier + 6) = v2
            Sheets("Récap des modifs").Range("D" & LigAcopier + 6) = v3
            Sheets("Récap des modifs").Range("E" & LigAcopier + 6) = v4
            Sheets("Récap des modifs").Range("F" & LigAcopier + 6) = v5
            Sheets("Récap des modifs").Range("G" & LigAcopier + 6) = v6
            Sheets("Récap des modifs").Range("H" & LigAcopier + 6) = v7
            Sheets("Récap des modifs").Range("I" & LigAcopier + 6) = v8
            Sheets("Récap des modifs").Range("J" & LigAcopier + 6) = v9
            Sheets("Récap des modifs").Range("K" & LigAcopier + 6) = v10
            Sheets("Récap des modifs").Range("L" & LigAcopier + 6) = v11
            Sheets("Récap des modifs").Range("M" & LigAcopier + 6) = v12
            Sheets("Récap des modifs").Range("N" & LigAcopier + 6) = v13
            Sheets("Récap des modifs").Range("O" & LigAcopier + 6) = v14

            'On termine notre boucle
            LigAcopier = LigAcopier + 1
        End If
    Next Lig
    
' On remet le rafraichissement écran plus cache la feuille d'importation
Sheets("Récap des modifs").Select
Sheets("Importation").Visible = False
Application.ScreenUpdating = True

End Sub

Merci une fois de plus le forum et bonne soirée !

PS: Si quelqu'un trouve que c'est compliqué alors que ya moyen de faire plus simple, qu'il le fasse savoir :D
PS2: J'ai modifié le nom des variable, c'est pas des numéro mais c'est un travail assez confidentiel...
 

Discussions similaires

Réponses
5
Affichages
481

Statistiques des forums

Discussions
312 587
Messages
2 090 009
Membres
104 344
dernier inscrit
nesrine