macro datediff

CYRIL CAMPAS

XLDnaute Junior
Bonjour,

je débute VBA et je commence déjà à perdre mes cheveux!!!

dans un premier temps, sur mon petit fichier exemple, je cherche à mettre dans une cellule le nombre de jour entre une date de devis et le jour en cours, et j'aimerai que ça se répète sur chaque ligne de mon fichier.

j'ai trouvé comment faire la boucle, mais pas comment mettre en oeuvre le datediff....

auriez-vous quelques pistes ?

voici mes premières lignes de code :



Sub Macro2()
'
' Macro2 Macro
'
Dim D As Date
Sheets("feuil1").Select
Range("A5").Select
début:
Do While ActiveCell.Value <> ""

<<<C'est à ce moment ou j'aimerai qu'une autre cellule affiche mon nombre de jours avec datediff et ensuite qu'il passe à la cellule suivante>>>


ActiveCell.Offset(1, 0).Select
GoTo début
Loop
End Sub


merci d'avance
 

CYRIL CAMPAS

XLDnaute Junior
Lone Wolf merci pur tous ces conseils, c'est génial!
Stapple, effectivement, ton code à l'air bien riche aussi, y'a plein de choses que je ne comprends pas aussi, j'dore, ça veut dire que j'ai plein de choses à apprendre!
en tout cas, bien sur Stapple merci pour ton aide aussi, j'ai été débordé par toutes ces superbes réponses et j'ai zappé de tout regarder!!!! trop de passion débordante de ma part!!! pourrais-tu toi aussi détailler ton code s'il te plait ? en plus ça me permettra de voir les différences entre le tien et celui de lone wolf, car j'imagine que comme la langue française, il y a plusieurs façons de dire quelque chose en VBA!
 

Staple1600

XLDnaute Barbatruc
Re

@Lone-wolf
Tu sais que je chéris ce principe, non ?
Le KISS ;)

Avant de penser VBA, il y a de quoi faire pour apprendre à exploiter toutes les ressources natives d'Excel
(voir par exemple le fil d'Aimedija ;))

Au départ, la vocation "basique" des macros, c'est d'éviter les tâches répétitives.

Mais foncer tête baissée dans le VBA quand on débute avec Excel n'est pas forcément pour moi la meilleure des façons d'appréhender cet outil ;)

NB: Ce n'est là qu'une suggestion de ma part.
 

Staple1600

XLDnaute Barbatruc
Re

Pour répondre à ceci
en tout cas, bien sur Stapple merci pour ton aide aussi, pourrais-tu toi aussi détailler ton code s'il te plait ?
VB:
'Déclaration variable lig
Public lig$
Sub a()
'lig= première cellule non vide de la colonne C en partant du bas de la feuille
lig = Cells(Rows.Count, 3).End(3).Row
'insertion formule dans colonne E
[E5].Resize(lig - 4) = "=RC[-3]-RC[-4]"
'insertion formule dans colonne F
[F5].Resize(lig - 4) = "=RC[-5]+21"
'lancement de la macro nommée misenforme
miseenforme
End Sub
Private Sub miseenforme()
'Déclaration variable plg
Dim plg As Range
'déterminatation de plage de cellules plg
Set plg = [A5].Resize(lig - 4, 9)
'application d'une mise en forme conditionelle
'le code ci-dessous est le code VBA à peine remanié, obtenu par l'enregistreur de macros
    plg.FormatConditions.Add Type:=xlExpression, Formula1:="=$E5>=21"
    plg.FormatConditions(plg.FormatConditions.Count).SetFirstPriority
    With plg.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    plg.FormatConditions(1).StopIfTrue = False
End Sub
 

Discussions similaires

  • Résolu(e)
Microsoft 365 pb formule vba
Réponses
15
Affichages
776

Statistiques des forums

Discussions
312 322
Messages
2 087 283
Membres
103 507
dernier inscrit
tapis23