de pseudo code à code vba macro

thierryastiti

XLDnaute Nouveau
Bonjour j'ai formulé ce que je veux mais j'ai encore du mal avec vba:


si une cellule est definie comme telle :cell(ligne,colonne)


Pour i = 3 à premiere lignevide


cas 1 si cell(i,colonneD) = "tata"

then cell(i,colonneAI)= 1

cas 2 si cell(i,colonneD) = "toto"

then cell(i,colonneAJ)= 1

cas 3 si cell(i,colonneD) = "tata"

then cell(i,colonneAK)= 1

aussi

Pour i = 3 à premiere lignevide

si cell(i,colonneM) < 1er jour du mois en cours (format jj/mm/aaaa)

alors colorie cell(i,colonneM) en rouge

sinon nofill (pas de coloriage) " rien donc"

"si on est le 17 juillet tout ce qui est du mois de juin sera colorier en rouge par exemple"

i++

incremente la boucle


si vous pouviez m'aider pour le code en vba,

merci !
 

Etienne2323

XLDnaute Impliqué
Re : de pseudo code à code vba macro

Salut thierry,
tu peux toujours essayer quelque chose comme ceci. Je n'ai pas testé par contre mais je crois que ça devrait répondre à ton besoin. Le code est commenté.

Code:
Sub test()

Dim PremiereLigneVide As Long
Dim ColonneD As Long
Dim DateCellule As Date, DateAujourdhui As Date

Application.ScreenUpdating = False 'Gèle l'écran pendant l'exécution de la macro

PremiereLigneVide = Cells(3, 4).End(xlDown).Row 'Détermine la première ligne vide sous la cellule de départ

For i = 3 To PremiereLigneVide 'Boucle sur
    'On fait des test sur la valeur que prend la cellule(i,4)
    Select Case Cells(i, 4)
        Case "tata" 'Si la valeur est tata, alors les cellules AI et AK prennent la valeur 1
            Cells(i, 35).Value = 1
            Cells(i, 37).Value = 1
        Case "toto" 'Si la valeur est toto, alors la cellule AJ prend la valeur 1
            Cells(i, 36).Value = 2
        Case Else 'Dans tous les autres cas, on donne autre à la cellule AI
            Cells(i, 35).Value = "Autre"
    End Select
    
    DateAujourdhui = Now 'Récupère la date d'aujourd'hui
    DateCellule = Cells(i, 13) 'Récupère la date de la cellule (i,13), soit la colonne M
    
    'On va faire un test pour voir si la date de la colonne M est plus petite qu'aujourd'hui.
    If DateCellule < DateAujourdhui Then 'Si c'est le cas et que la date est plus petite, alors
        Cells(i, 13).Interior.ColorIndex = 3 'Colorie la cellule en rouge
    Else 'Sinon
        Cells(i, 13).Interior.ColorIndex = xlNone 'Ne colorie pas
    End If
Next i 'Incrémente la boucle

End Sub

Bonne fin de journée,

Cordialement,

Étienne
 

thierryastiti

XLDnaute Nouveau
Re : de pseudo code à code vba macro

J'ai essaye de bosser dessus (pour la premiere partie)

mais ça marche pas :(

Sub Tri()

Dim Ligne As Long

Ligne = Range("A1").End(xlDown).Row

Range("A" & Ligne).Select

For i = 1 To Ligne

Select Case Cells(i, 4)
Case Is = "qssq"
Cells(i, 35) = 1
Case Is = "sdvsv"
Cells(i, 36) = 1
Case Is = "errors"
Cells(i, 37) = 1
Case Is = "sdvsdvs"
Cells(i, 38) = 1
Case Is = "sdcfsd"
Cells(i, 39) = 1
Case Is = "cdscscs"
Cells(i, 40) = 1
End Select

Next
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : de pseudo code à code vba macro

Bonjour Thierry, Etienne

ici, on ne peut pas flaguer un post comme "résolu", tu le dis et c'est très bien ainsi, cela permet en outre, à qui veut apporter une autre solution de le faire...

bonne soirée
@+
 

Discussions similaires

Réponses
0
Affichages
176
Réponses
5
Affichages
244
Réponses
7
Affichages
581

Statistiques des forums

Discussions
312 493
Messages
2 088 955
Membres
103 989
dernier inscrit
jralonso