Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro avec elseIf ?

  • Initiateur de la discussion Initiateur de la discussion wwwhttp
  • Date de début Date de début

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 !

wwwhttp

XLDnaute Nouveau
bonjour,
je bute sur une macro.
en données : colA avec un état d'avancement, colB avec des données temps en secondes
je dois à partir de ces 2 col en faire une 3ème avec soit la durée exprimée en hh:mm:ss si la durée existe en colB, soit l'état d'avancement si la durée colB est vide, et que la macro s'applique de la 2ème à la dernière ligne, quel que soit le nbre de lignes
donc quoi qu'il arrive aucune ligne vide sur la 3ème colonne
merci d'avance de votre aide
 

Pièces jointes

Re : macro avec elseIf ?

Bonjour et bienvenu sur le forum Wwwhttp,

Voici ci-joint la solution à ton problème.

Comme tu peux le constater la macro est assez basique, pratique pour commencer à apprendre le VBA. Voici ton code commenté :

VB:
Sub RemplissageColonneTrios()
Dim DernièreLigne As Long
' La variable DernièreLigne est de type Long
DernièreLigne = [A65536].End(xlUp).Row
' Se placer sur la cellule A65536 et remonter vers le haut, jusqu'à la première cellule pleine
' Puis placer le numéro de cette ligne dans la variable DernièreLigne
' Cela permet de connaître jusqu'où descend ton tableau. En partant du principe que la
' colonne A est toujours renseigné!

For i = 2 To DernièreLigne
' Mettre 2 dans la variable i lorsque la boucle est effectué pour la première fois
' puis 3, puis 4, ... jusqu'à atteindre le numéro contenu dans la variable DernièreLigne
    If Cells(i, 2) = "" Then
    'Si la cellule colonne 2, ligne i est vide alors
         Cells(i, 3) = Cells(i, 1)
         'écrire dans la cellule colonne 3, ligne i la valeur contenu dans la cellule colonne 1, ligne i
    Else
    'sinon
         Cells(i, 3) = Cells(i, 2)
         'écrire dans la cellule colonne 3, ligne i la valeur contenu dans la cellule colonne 2, ligne i
    End If
    'fin de la condition "SI"
Next i
'Tant que la valeur contenu dans i est inférieur à la valeur contenu dans la variable "DernièreLigne"
'Effectuer une nouvelle fois le code VBA inclus dans la boucle

End Sub

Si tu as besoin de plus d'explication, n'hésite pas à demander, le but est de comprendre et progresser.

Pour plus d'explication sur les boucles, dont celle utilisé ici : "For... To ... Next", regarde ici 😉

Pour plus d'explication sur les types de variable, cliquer ici

Bonne soirée

Edition : salut Dranreb
 

Pièces jointes

Dernière édition:
Re : macro avec elseIf ?

Bonsoir le fil, bonsoir le forum,

Tout comme Excel-lent j'étais en train de me torturer les neurones avec une solution VBA pour extraires les heures minutes et secondes quand je tombe sur la solution de Bernard. Il m'a cloué le bec ! Arrrgh, faut que je me mette aux formules urgent...

[Édition]
Bonsoir Gilbert on s'est croisé...
 
Re : macro avec elseIf ?

Si vous tenez à le faire par macro :
VB:
Sub Macro1()
With Feuil9.Range("C2:C" & Feuil9.[A65536].End(xlUp).Row)
   .FormulaR1C1 = "=IF(RC2>0,RC2/86400,RC1)"
   .Value = .Value ' Facultatif
   .NumberFormat = "[h]:mm:ss;@"
   End With
End Sub
À +
 
Dernière édition:
Re : macro avec elseIf ?

Bonsoir à tous,

Ben... c'est surtout que le titre du fil était : macro avec elseIf ?

D'où ma réponse 😉

Mais c'est clair que la version "formule" est beaucoup plus simple. Mais présente l'inconvénient de ne pas s'adapter automatiquement à la hauteur du tableau 😀


Bonne soirée à tous
 
Re : macro avec elseIf ?


pile poil !
un grand merci à vous toutes et tous, ça pulse dans ce forum, aussi bien sur la rapidité que sur la qualité
je reviendrai certainement pour en apprendre plus ;-)
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…