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
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
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
Datediff n'a rien à voir là-dedans : la difference entre 2 dates s'exprime directement en jours !!

Goto début est ici superfétatoire devant l'instruction Loop,
relativement à la séquence :
début:
Do While
 

Lone-wolf

XLDnaute Barbatruc
Bonjour CYRIL et bienvenue sur XLD :)
Hi! Modeste :)

Dans ton cas une simple formule suffit. A5 = TEXTE(C2-AUJOURDHUI();"0")

Par macro

VB:
'Exemple DateDiff
Sub test()
Dim deb As Date, fin As Date

    deb = Date
    With Feuil1
        fin = .Range("c5")
        .Range("a5") = DateDiff("d", deb, fin)
    End With
End Sub

Plus simple

Sub test()
With Feuil1
.Range("a5") = Format(.Range("c5") - Date, "0")
End With
End Sub
 
Dernière édition:

CYRIL CAMPAS

XLDnaute Junior
Bonjour à tous et merci de vos retours si rapides!

Lone wolf, j'ai essayé de faire un copier collé de ton code mais cela ne fonctionne pas et je suis certain que je fais une erreur quelque part!!!!

voici mon fichier, peut-être comprendras tu où j'ai fait mes erreurs (je suis sur qu'il yen a plusieurs!!!)

en gros, ce que je souhaite faire, c'est afficher dans la cellule "nombre de jours" l'écart de jours entre la date d'aujourd'hui et la date de devis, et bien sur que ça me fasse ça pour tout le fichier....

VBA me passionne depuis 3 jours, mais je pense avoir grillé quelques neurones à force de trop chercher!

en tout cas, c'est génial d'avoir des personnes compétentes et surtout disponibles pour aider les novices!
 

Pièces jointes

  • test pour Anne-lise.xlsm
    41.8 KB · Affichages: 31

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Si j'ai bien compris la donne, lancer la macro a
VB:
Public lig$
Sub a()
lig = Cells(Rows.Count, 3).End(3).Row
[E5].Resize(lig - 4) = "=RC[-3]-RC[-4]"
[F5].Resize(lig - 4) = "=RC[-5]+21"
miseenforme
End Sub
Private Sub miseenforme()
Dim plg As Range
Set plg = [A5].Resize(lig - 4, 9)
    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

EDITION: Bonsoir Lone-Wolf
 
Dernière édition:

CYRIL CAMPAS

XLDnaute Junior
whaou whaou whaou! mais vous êtes tous des stars!!!! je m'absente quelques heures (travail oblige...) et me voilà avec plein de solutions! merci beaucoup à tous, je vais essayer de comprendre dans le détail chacun de vos codes, ça va me faire progresser!

merci encore, je sens que je vais revenir très vite sur ce forum puisqu'on y apprend plein de choses:)
 

CYRIL CAMPAS

XLDnaute Junior
Lone Wolf, effectivement ta solution semble hyper bien ! j'ai regardé un peu ton code, il y a des lignes que je n'arrive pas à interpréter (genre x&....), est-ce que ça 'ennuie de me mettre en commentaire de chaque ligne de code l'explication s'il te plait, je pense que ça m'aidera beaucoup! bien sur, rien n'est urgent, vous avez déjà tous tellement été sympa et réactifs, j'hallucine encore!

sinon, connais tu un site sur lequel je puisse avoir des bonnes explications, des exercices à faire...?

merci encore à tous (si vous habitez dans le coin de la haute-savoie, je vous offre des chocapic pour remerciements!!!! je travaille chez Nestlé!)

Merci chers XLDnautes
 

Lone-wolf

XLDnaute Barbatruc
Bonsoir CYRIL, le Forum :)

Ton fichier commenté. Pour apprendre le VBA, mise à part Excel-Downloads, il en y a beaucoup. Il y a aussi You Tube, il te suffit d'écrire VBA Excel pour voir les tutos. Ici, en cliquant sur Vidéos, tu pourras aussi en voir quelques-uns.

EDIT: bonsoir Jean Marie :)
 

Pièces jointes

  • test pour Anne-lise.xlsm
    43.2 KB · Affichages: 27

Discussions similaires

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

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16