XL 2010 Besoin d aide VBA / Etendre une formule

AngéliqueCloé

XLDnaute Nouveau
Bonjour à tous et à toutes,
Je débute tout juste sur VBA, jusqu'à maintenant j'utilise essentiellement la version "enregistrement" pour créer mes macros.

Aujourd'hui je suis dans un casse tête, et je tourne en rond depuis cet apres-midi pour trouver la solution. Je vous sollicite donc pour votre aide.

j'ai un fichier, qui est une extraction à partir d'un fichier de base de mon logiciel informatique.

Après retirer les colonnes qui ne m'interessent pas, j'ai dans la colonne E, des dates.
Je souhaite dans la colonne I, obtenir la différence de jour entre la date E et la date du jour et dans la colonne J, obtenir la condition si l'écart est > ou < à jours (jusque là j'y arrive).

Ma problématique est que dans mon fichier de base, j'ai 155 lignes; et donc quand je tire mes formules pour créer ma macro, cela génère jusqu'à la 155ème lignes. Je n'arrive pas à trouver comment modifier dans mes colonnes I et J pour que mes formules s'appliquent autant qu'il y a de date dans ma colonne E (qui varie chaque jour).

A force de faire des essais, je ne sais même plus où je suis "plantée" et j'ai complètement perdu pied dans ma macro.

Merci à vous pour l'aide que vous pourrez m'apporter.
 
Dernière édition:

AngéliqueCloé

XLDnaute Nouveau
Bonsoir Sylvanu,
Merci d'avoir pris le temps de lire ma problématique.
Alors il y a 2 raisons pour lesquelles je souhaite passer par une macro, la 1ère c'est qu'il y a un 1er traitement du fichier, pour obtenir ce fichier que j'ai fait par la macro avec la "mise en page". La 2ème c'est que cet outil sera utilisé par plusieurs personnes qui ont très peu de connaissance en Excel et avec les formules. Je souhaitais donc pouvoir leur transmettre un outil "clé en main".
(Une fois les macros effectuées, je vais créer des TCD avec différents segments, pour que nous utilisions tous les mêmes informations).
 

Jacky67

XLDnaute Barbatruc
Bonjour à tous et à toutes,
Je débute tout juste sur VBA, jusqu'à maintenant j'utilise essentiellement la version "enregistrement" pour créer mes macros.

Aujourd'hui je suis dans un casse tête, et je tourne en rond depuis cet apres-midi pour trouver la solution. Je vous sollicite donc pour votre aide.

j'ai un fichier, qui est une extraction à partir d'un fichier de base de mon logiciel informatique.

Après retirer les colonnes qui ne m'interessent pas, j'ai dans la colonne E, des dates.
Je souhaite dans la colonne I, obtenir la différence de jour entre la date E et la date du jour et dans la colonne J, obtenir la condition si l'écart est > ou < à jours (jusque là j'y arrive).

Ma problématique est que dans mon fichier de base, j'ai 155 lignes; et donc quand je tire mes formules pour créer ma macro, cela génère jusqu'à la 155ème lignes. Je n'arrive pas à trouver comment modifier dans mes colonnes I et J pour que mes formules s'appliquent autant qu'il y a de date dans ma colonne E (qui varie chaque jour).

A force de faire des essais, je ne sais même plus où je suis "plantée" et j'ai complètement perdu pied dans ma macro.

Merci à vous pour l'aide que vous pourrez m'apporter.
Bonjour,
Si j'ai bien compris, on pourrait se passer de la colonne i
Une proposition par vba avec un contrôle sur la colonne R en cas de deuxième lancement
VB:
Sub MAJFICHIER()
    Dim Plage
    If Application.CountA([r:r]) > 0 Then
        Rows("1:4").Delete Shift:=xlUp
        Range("A:A,C:E,G:J,N:P,R:V,X:X").Delete Shift:=xlToLeft
    End If
    Range("I1") = "Condition"
    Set Plage = Range("i2:i" & Cells(Rows.Count, "A").End(xlUp).Row)
    Plage.Formula = "=IF(TODAY()-$e2>=60,"">60"",""<60"")"
    Plage.Value = Plage.Value
End Sub
 

AngéliqueCloé

XLDnaute Nouveau
Bonjour,
Si j'ai bien compris, on pourrait se passer de la colonne i
Une proposition par vba avec un contrôle sur la colonne R en cas de deuxième lancement
VB:
Sub MAJFICHIER()
    Dim Plage
    If Application.CountA([r:r]) > 0 Then
        Rows("1:4").Delete Shift:=xlUp
        Range("A:A,C:E,G:J,N:P,R:V,X:X").Delete Shift:=xlToLeft
    End If
    Range("I1") = "Condition"
    Set Plage = Range("i2:i" & Cells(Rows.Count, "A").End(xlUp).Row)
    Plage.Formula = "=IF(TODAY()-$e2>=60,"">60"",""<60"")"
    Plage.Value = Plage.Value
End Sub



Un énorme, énorme, énorme, énorme MERCI à vous!!! Vraiment!
C'est parfait, et même plus que je n'espèrais car ça m'évite des onglets supplémentaires!

J'étais encore dessus (depuis 13h... Il est 23h10!) à chercher des solutions (j'étais à me résoudre à devoir glisser les formules manuellement!

Votre macro marche parfaitement!

Encore 1000 mercis à vous!
 

Jacky67

XLDnaute Barbatruc
Un énorme, énorme, énorme, énorme MERCI à vous!!! Vraiment!
C'est parfait, et même plus que je n'espèrais car ça m'évite des onglets supplémentaires!

J'étais encore dessus (depuis 13h... Il est 23h10!) à chercher des solutions (j'étais à me résoudre à devoir glisser les formules manuellement!

Votre macro marche parfaitement!

Encore 1000 mercis à vous!
Re..
Attention
Le classeur contient des destinataires existants, ce qui très fortement déconseillé pour ne pas dire interdit.
Il vaut mieux le supprimer.
Editer le post en question et supprimer la pièce jointe
 

AngéliqueCloé

XLDnaute Nouveau
Re..
Attention
Le classeur contient des destinataires existants, ce qui très fortement déconseillé pour ne pas dire interdit.
Il vaut mieux le supprimer.
Editer le post en question et supprimer la pièce jointe
Merci pour vos conseils bienveillants, je viens d apporter les modifications. J ai envoyé le fichier un peu rapidement et je n avais pas fait attention qu il restait des informations.
En tout cas merci vraiment pour votre aide, j ai pu finaliser mon outil de suivi et l utiliser aujourd'hui !
 

Discussions similaires

Réponses
13
Affichages
323

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko