XL 2019 XL 2021 - VBA : boucles et conditions

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

LoXaRoX

XLDnaute Nouveau
Bonjour,

Je suis débutant sur VBA.
J'ai pu faire des macros et les modifier, mais je ne suis pas encore au stade de la vraie programmation en Visual Basic.

Sur une colonne, j'ai besoin de vérifier si le salarié est en CDI ou CDD pour appliquer un calcul sur son salaire.

Quelqu'un pourrait-il m'aider à transformer mon "algorithme" en VB s'il vous plait ?

Définition variable = Cellule As Range
Sélectionner Cellule G2
Pour chaque Cellule dans Feuil1ColonneG = non vide (For Each Cellule In Range("G:G")
SI Cellule = CDI
ALORS Calcul
SINON
SI Cellule = CDD
ALORS ne rien faire
SI Cellule = vide
ALORS
NEXT

Merci d'avance,
 
Solution
Bonjour,

Pour faire Colonne D - Colonne F + 10% il y a deux possibilités :
- Cells(Cell.Row, 4) - Cells(Cell.Row, 6) (Cells est une commande VBA, Cell est notre variable)
- Cell.Offset(0, -3) - Cell.Offset(0. -1)
Je préfère Offset parce que c'est plus joli mais les deux fonctionnent.
Pour le 10%, c'est 10% d'une valeur ou juste ajouter 0.1 ?

Pour sortir de la boucle avant qu'elle n'ait fini de s'exécuter entièrement, utiliser l'instruction Exit For.

Bonne journée,
Bonjour,

Ceci ?
VB:
'Définition variable = Cellule As Range
Dim Cell
'Sélectionner Cellule G2 -> Pas nécessaire
'Pour chaque Cellule dans Feuil1ColonneG = non vide (For Each Cellule In Range("G:G")
For each Cell in Sheets("Feuil1").Columns("G:G")
'SI Cellule = CDI et Cellule non vide (Si c'est CDI c'est forcément non vide)
    If Cell.Value = "CDI" Then
'ALORS Calcul
        Calcul
'SINON -> Pas nécessaire s'il ne faut rien faire, fin du If
    End if
'SI Cellule = vide
'ALORS -> Alors que faire ?
Next Cell

Bonne journée,
 
Alors voilà comment j'ai progressé grâce à votre code :

VB:
'Définition de la variable
Dim Cell

'Pour chaque cellule de la Colonne G
For each Cell in Sheets("Feuil1").Columns("G:G")
'SI Cell = CDI ALORS
    If Cell.Value = "CDI" Then
' CALCUL
'        Colonne D - Colonne F + 10%
    End if
'SI Cellule = vide
'ALORS -> Arreter la boucle
Next Cell

Qu'en pensez-vous ?
 
Bonjour,

Pour faire Colonne D - Colonne F + 10% il y a deux possibilités :
- Cells(Cell.Row, 4) - Cells(Cell.Row, 6) (Cells est une commande VBA, Cell est notre variable)
- Cell.Offset(0, -3) - Cell.Offset(0. -1)
Je préfère Offset parce que c'est plus joli mais les deux fonctionnent.
Pour le 10%, c'est 10% d'une valeur ou juste ajouter 0.1 ?

Pour sortir de la boucle avant qu'elle n'ait fini de s'exécuter entièrement, utiliser l'instruction Exit For.

Bonne journée,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 macro vba sumifs
Réponses
5
Affichages
597
Réponses
17
Affichages
1 K
Réponses
1
Affichages
1 K
Retour