Topic global pour nombreuses questions VBA

xorre

XLDnaute Junior
Bonjour,

Je souhaite m'autoformer sur le VBA tout en réalisant ce que j'ai besoin de faire sous Excel pour mes besoins professionnel.
Je ne souhaite pas fournir de fichier Excel afin de m'imposer le fait d'utiliser l'outil de developpement intégré.

Voici pour commencer :

Je cherche dans un premier temps à parcourir une colonne afin de vérifier s'il existe une valeur 'XX' dans ma colonne A
Si la valeur XX existe il faut que j'aille sur la colonne B pour remplir ce champ avec un 'YY'

puis je dois parcourir l'ensemble de ma colonne A pour faire la même chose

Pourriez-vous m'aider?

Le code se rapprochant le plus serait :

Code:
Sub For_Each_Next_Plage()
Dim FL1 As Worksheet, Cell As Range, Plage As Range
Dim Var1
 
    Set FL1 = Worksheets("Feuil2")
    With FL1
        'Détermination de la plage de cellules à lire
        'Peut s'écrire en utilisant l'objet range de la plage
        'For Each Cell In .Range("B3:E15")
 
        'ou en utilisant l'objet Plage (range) de la plage
        Set Plage = .Range("B3:E15")
        For Each Cell In Plage
 
            'Valeur de la cellule lue
            Var1 = Cell.Value
        Next
    End With
    Set FL1 = NoThing
    Set Plage = NoThing
End Sub


Merci d'avance
 
Dernière édition:

xorre

XLDnaute Junior
Re : Topic global pour nombreuses questions VBA

Aha super voilà ce que donne ma première fonction !

Sub Bouton()
Dim WK1 As Worksheet

Set FL1 = Worksheets("Feuil1")

With FL1
i = 2
Do While Cells(i, 1) <> ""
If Cells(i, 3) = "ANN" Then Cells(i, 4) = "T"
If Cells(i, 4) = "T" Then Cells(i, 3) = "ANN"
i = i + 1
Loop
End With

End Sub

Y'a-t-il un moyen de griser des cases vides simplement sur une colonne ?
 

xorre

XLDnaute Junior
Re : Topic global pour nombreuses questions VBA

Quelque chose comme :
Sub ANN_T_COLORIER()

Dim WK1 As Worksheet

Set FL1 = Worksheets("Feuil1")

With FL1
i = 2
Do While Cells(i, 1) <> ""
If .Cells(i, 3) = "ANN" Then .Cells(i, 4) = "T"
If .Cells(i, 4) = "T" Then .Cells(i, 3) = "ANN"
If .Cells(i, 4) = "" Then .Cells(i, 4).Interior.ColorIndex = 28
i = i + 1
Loop
End With
Maintenant faut je trouve la bonne couleur pour du gris :p

Après y-a-t-il moyen de réaliser un tri sur une plage dynamique (mon tableau ne sera jamais le même en terme de ligne ( colonne identique mais nombre de ligne peut différer d'un fichier à l'autre ... )

le tri que j'ai à effectuer doit se faire
sur la colonne A par valeur de A à Z
sur la colonne D par couleur de cellule (sélectionnée précédemment dans ma fonction) par le haut
sur la colonne E par valeurs de A à Z

Je suis en train de voir pour applqiuer la fonction sort qui m'a l'air de tout à fait correspondre !

Par contre est-il possible de sélectionner un range de façon dynamique
l'idée serait de commencer sur la première case de ma colonne de parcourir mes colonnes jusqu'à en trouver une vide ( ca me donnerait l'ensemble des colonnes à sélectionner puis de faire pareille sur le nombre de ligne afin d'appliquer mon tri sur le range ainsi réalisé qui peut ne pas être sur le meme nombre de ligne ?
 
Dernière édition:

xorre

XLDnaute Junior
Re : Topic global pour nombreuses questions VBA

Aha merci super !!

C'est vrai que j'avais commencé par ce premier topic mais j'ai préféré me lancer plutôt que d'être dépendant d'une réponse :)

Pourrais tu m'expliquer un peu le code, car le but c'est que je puisse le reporter sur un autre fichier qui pour le coup ne dépend pas des colonnes de l'exemple ( tableau placé sur une autre feuille, dont le début commence sur une autre colonne :)

Encore merci à toi !

Ma prochaine étape est de lire des fichiers textes parsés pour les ajouter à des endroits (feuilles / colonnes lignes) précis et en format texte.

Je pense que des explications sur cette fonction me permettrais d'essayer de mieux comprendre la gestion ligne colonne etc. pour l'appliquer à ma prochaine étape de traitement automatisée :)
 
Dernière édition:

Discussions similaires

Réponses
0
Affichages
136