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 !

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
 
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
 
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:
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

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:
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🙂
 
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
 
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

- 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 Problème macro
Réponses
4
Affichages
392
Réponses
4
Affichages
544
Réponses
15
Affichages
1 K
Réponses
4
Affichages
686
Retour