Excel rajout de date
Résolu/Fermé
frisoa
Messages postés
40
Date d'inscription
lundi 26 janvier 2009
Statut
Membre
Dernière intervention
31 janvier 2013
-
4 juin 2009 à 11:41
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 26 juin 2009 à 18:37
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 26 juin 2009 à 18:37
A voir également:
- Excel rajout de date
- Liste déroulante excel - Guide
- Si et excel - Guide
- Trier par date excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
13 réponses
m@rina
Messages postés
21209
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
25 décembre 2024
11 372
4 juin 2009 à 12:28
4 juin 2009 à 12:28
Bonjour,
Euh... perso, je n'ai rien compris !
Peux tu être plus explicite et joindre un petit exemple (http://cjoint.com).
m@rina
Euh... perso, je n'ai rien compris !
Peux tu être plus explicite et joindre un petit exemple (http://cjoint.com).
m@rina
frisoa
Messages postés
40
Date d'inscription
lundi 26 janvier 2009
Statut
Membre
Dernière intervention
31 janvier 2013
4 juin 2009 à 14:38
4 juin 2009 à 14:38
désolé si je n'est pas été très clair,
un exemple sera plus parlant, voici le lien du fichier https://www.cjoint.com/?geoKC4fFhH
un exemple sera plus parlant, voici le lien du fichier https://www.cjoint.com/?geoKC4fFhH
frisoa
Messages postés
40
Date d'inscription
lundi 26 janvier 2009
Statut
Membre
Dernière intervention
31 janvier 2013
4 juin 2009 à 15:31
4 juin 2009 à 15:31
personne pour m'aider ??
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
4 juin 2009 à 16:21
4 juin 2009 à 16:21
bonjour frisoa
Marin@ doit faire encore la sieste ;o)... pardon! M@rina
ci joint proposition
https://www.cjoint.com/?geqmKP6cIl
mais ce qu'il y a de curieux, c'est que tu as plusieurs fois la même date dans "ce que j'ai" et dans "ce que je voudrais" il n'y a plus qu'une seule date
si il faut conserver ces "plusieurs dates" le pb est hachement + compliqué
Marin@ doit faire encore la sieste ;o)... pardon! M@rina
ci joint proposition
https://www.cjoint.com/?geqmKP6cIl
mais ce qu'il y a de curieux, c'est que tu as plusieurs fois la même date dans "ce que j'ai" et dans "ce que je voudrais" il n'y a plus qu'une seule date
si il faut conserver ces "plusieurs dates" le pb est hachement + compliqué
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
frisoa
Messages postés
40
Date d'inscription
lundi 26 janvier 2009
Statut
Membre
Dernière intervention
31 janvier 2013
4 juin 2009 à 16:35
4 juin 2009 à 16:35
bah justement il faut conserver ces plusieurs dates, puisqu'à chacune des lignes correspond les caractéristiques d'un seul et même individu.
j'imagine que ça ne peut pas se faire simplement....il va falloir passer par virtual basic?
j'imagine que ça ne peut pas se faire simplement....il va falloir passer par virtual basic?
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
4 juin 2009 à 23:12
4 juin 2009 à 23:12
Bonsoir tout le monde,
bon, comme je vois que michel s'est laissé tenté par une sieste avec m@rina voici une proposition :
frisoa.xls
chuuuuut....
eric
bon, comme je vois que michel s'est laissé tenté par une sieste avec m@rina voici une proposition :
frisoa.xls
chuuuuut....
eric
m@rina
Messages postés
21209
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
25 décembre 2024
11 372
5 juin 2009 à 11:59
5 juin 2009 à 11:59
Hello Eriic,
La sieste est finie ! ;))))
En fait, avec Michel, on s'est dit que tu étais beaucoup plus réveillé que nous pour répondre.
m@rina
La sieste est finie ! ;))))
En fait, avec Michel, on s'est dit que tu étais beaucoup plus réveillé que nous pour répondre.
m@rina
frisoa
Messages postés
40
Date d'inscription
lundi 26 janvier 2009
Statut
Membre
Dernière intervention
31 janvier 2013
5 juin 2009 à 10:14
5 juin 2009 à 10:14
Bonjour Éric,
ça marche super sur l'exemple mais dès que j'essaie de l'appliquer sur la totalité du fichier ça ne marche plus.
Pourrais tu m'expliquer la démarche ou à moins que ça ne te dérange pas de le faire voici le fichier complet http://www.cijoint.fr/cjlink.php?file=cj200906/cijmr8sFQu.zip
Si ce n'est pas trop compliqué j'aimerais bien savoir comme cela fonctionne que je puisse le refaire sur d'autres fichiers par la suite (ce qui me sera bien utile)
Merci encore
ça marche super sur l'exemple mais dès que j'essaie de l'appliquer sur la totalité du fichier ça ne marche plus.
Pourrais tu m'expliquer la démarche ou à moins que ça ne te dérange pas de le faire voici le fichier complet http://www.cijoint.fr/cjlink.php?file=cj200906/cijmr8sFQu.zip
Si ce n'est pas trop compliqué j'aimerais bien savoir comme cela fonctionne que je puisse le refaire sur d'autres fichiers par la suite (ce qui me sera bien utile)
Merci encore
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
5 juin 2009 à 17:07
5 juin 2009 à 17:07
Bonjour,
Bien sûr que ça ne marche pas, tu demandes pour un fichier avec les dates en B et tu veux traiter un fichier avec les dates en C, et le champs heure a disparu...
Là je n'ai pas trop le temps de modifier, pendant ce temps réfléchi bien quel sera ton format de fichier et s'il est bien unique (position des champs)
Difficile de t'expliquer VBA en 10 lignes.
Pour commencer clic-droit sur le nom d'un onglet du fichier que je t'ai fourni, 'visualiser le code', puis double-clic sur 'module1' pour visualiser le code. Si tu as qcq notions de programmation tu trouveras peut-être oèu il faut agir.
eric
Bien sûr que ça ne marche pas, tu demandes pour un fichier avec les dates en B et tu veux traiter un fichier avec les dates en C, et le champs heure a disparu...
Là je n'ai pas trop le temps de modifier, pendant ce temps réfléchi bien quel sera ton format de fichier et s'il est bien unique (position des champs)
Difficile de t'expliquer VBA en 10 lignes.
Pour commencer clic-droit sur le nom d'un onglet du fichier que je t'ai fourni, 'visualiser le code', puis double-clic sur 'module1' pour visualiser le code. Si tu as qcq notions de programmation tu trouveras peut-être oèu il faut agir.
eric
frisoa
Messages postés
40
Date d'inscription
lundi 26 janvier 2009
Statut
Membre
Dernière intervention
31 janvier 2013
5 juin 2009 à 17:23
5 juin 2009 à 17:23
désolé Eric de n'avoir pas fourni le bon doc des le début.
concernant le format du fichier justement je ne suis pas sur qu'ils seront tous de la meme forme, c'est pourquoi je te demandais si il était possible que tu m'expliques un peu le script.
je me pencherais sur le code mardi ou mercredi.
en tout cas merci infiniment pour ton aide
a bientot et bon week end
concernant le format du fichier justement je ne suis pas sur qu'ils seront tous de la meme forme, c'est pourquoi je te demandais si il était possible que tu m'expliques un peu le script.
je me pencherais sur le code mardi ou mercredi.
en tout cas merci infiniment pour ton aide
a bientot et bon week end
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
6 juin 2009 à 11:14
6 juin 2009 à 11:14
Bonjour,
voici la macro modifiée : frisoa.xls
Les noms des champs sont recherchés sur la ligne 1 et peuvent être en n'importe quelle position, leur libellé doit être exact, accents compris.
J'ai commenté un peu le code et ajouté une gestion d'erreur (champ recherché absent ou feuille trop petite)
Comme tes données sont nombreuses tu peux suivre l'évolution du traitement dans la barre d'état en bas de la fenetre excel.
eric
voici la macro modifiée : frisoa.xls
Les noms des champs sont recherchés sur la ligne 1 et peuvent être en n'importe quelle position, leur libellé doit être exact, accents compris.
J'ai commenté un peu le code et ajouté une gestion d'erreur (champ recherché absent ou feuille trop petite)
Comme tes données sont nombreuses tu peux suivre l'évolution du traitement dans la barre d'état en bas de la fenetre excel.
Sub completerDates() ' raccourci clavier: ctrl+d ' ' la macro traite la feuille active ' la feuille sera triée par date ' pour chaque date manquante 1 ligne est insérée ' et les champs listés dans nomsChamps dupliqués. ' Dim i As Long, j As Long, lig As Long, nbLig As Long, nbAjout As Long, derCol As Long Dim libelErreur As String ' changer la dimension de posChamps si le nombre de champs à dupliquer change ' et mettre à jour la liste des libellés des champs Dim nomsChamps(), posChamps(4) As Long ' liste des libellés des champs, champ Date obligatoire et toujours en 1er nomsChamps = Array("Date", "Methode", "CodeSecteur", "Stratégie") ' 1er champ: Date, autres champs: champs à récupérer ' ' Application.ScreenUpdating = False ' ne pas rafraichir l'écran ' recup positions champs libelErreur = "champ " & nomsChamps(i) & " non trouvé." For i = 0 To UBound(nomsChamps) On Error GoTo erreur posChamps(i) = Application.Match(nomsChamps(i), [1:1], 0) On Error GoTo 0 Next i ' trier par date derCol = [A1].Offset(1, Cells.Columns.Count - 1).End(xlToLeft).Column Columns("A:A").Resize(, derCol).Sort Key1:=Range("C2"), Order1:=xlAscending, _ Header:=xlGuess, OrderCustom:=1, Orientation:=xlTopToBottom ' ' pour chaque cellule colonne Date en partant de la dernière cellule remplie nbLig = [A1].Offset(Cells.Rows.Count - 1, posChamps(0) - 1).End(xlUp).Row For lig = nbLig To 3 Step -1 If Cells(lig, posChamps(0)) > Cells(lig - 1, posChamps(0)) + 1 Then 'si delta date > 1 alors nbAjout = nbAjout + 1 If nbLig + nbAjout > Cells.Rows.Count Then ' si feuille trop petite libelErreur = "Trop de lignes ajoutées." GoTo erreur Else ' sinon Application.StatusBar = "Ligne en cours de traitement : " & lig & " ( " & nbAjout & " lignes ajoutées)" Rows(lig).Insert Shift:=xlDown ' insérer 1 ligne au dessus Cells(lig, posChamps(0)).Value = Cells(lig + 1, posChamps(0)).Value - 1 ' mettre date-1 For j = 1 To UBound(posChamps) - 1 ' inscrire les champs à récupérer Cells(lig, posChamps(j)).Value = Cells(lig - 1, posChamps(j)).Value Next j ' champ suivant lig = lig + 1 End If End If Next lig ' ligne suivante ' retablir barre d'état et rafraichissement écran Application.StatusBar = "" Application.ScreenUpdating = True MsgBox (nbAjout & " lignes ajoutées") Exit Sub erreur: j = MsgBox(libelErreur, vbCritical + vbRetryCancel) Application.StatusBar = "" Application.ScreenUpdating = True End Sub
eric
frisoa
Messages postés
40
Date d'inscription
lundi 26 janvier 2009
Statut
Membre
Dernière intervention
31 janvier 2013
10 juin 2009 à 10:43
10 juin 2009 à 10:43
Bonjour Eric,
Désolé de ne pas avoir répondu avant, j'étais en réunion tout le début de semaine.
Le fichier que tu m'as posté est l'exemple que j'avais mis au début, le fichier complet se trouve ici. http://www.cijoint.fr/cjlink.php?file=cj200906/cijmr8sFQu.zip
Quand j'applique le code que tu m'as envoyé sur les données complètes cela duplique la première colonne sur l'ensemble de la feuille...et vu que j'ai un peu de mal à comprendre le code VBA malgré tes explications claires je n'ai pas réussi à résoudre le problème.
peux tu m'eclairer?
En tout cas il va vraiment falloir que je m'attèle rapidement à VBA pour résoudre ce type de problème tout seul...connais tu des cours en ligne gratuits?
Désolé de ne pas avoir répondu avant, j'étais en réunion tout le début de semaine.
Le fichier que tu m'as posté est l'exemple que j'avais mis au début, le fichier complet se trouve ici. http://www.cijoint.fr/cjlink.php?file=cj200906/cijmr8sFQu.zip
Quand j'applique le code que tu m'as envoyé sur les données complètes cela duplique la première colonne sur l'ensemble de la feuille...et vu que j'ai un peu de mal à comprendre le code VBA malgré tes explications claires je n'ai pas réussi à résoudre le problème.
peux tu m'eclairer?
En tout cas il va vraiment falloir que je m'attèle rapidement à VBA pour résoudre ce type de problème tout seul...connais tu des cours en ligne gratuits?
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
10 juin 2009 à 11:51
10 juin 2009 à 11:51
Bonjour,
Le dernier fichier que je t'ai fourni contient la macro mais c'est vrai que j'ai été avare d'explications.
J'ai pensé que tu aurais à relancer cette macro régulièrement et peut-être sur différents classeurs.
Donc ce fichier tu l'enregistres sous un nom plus parlant, par exemple TraitementDate.xls, tu peux nettoyer les feuilles, en supprimer et mettre un petit modop si tu veux que ce soit plus propre.
Tu l'ouvres, tu ouvres le classeur que tu veux traiter et tu sélectionnes la feuille à traiter puis Ctrl+d et tu vas te faire un café...
Tu peux suivre l'évolution du traitement en bas de la fenetre et voir que ça tourne bien.
L'insertion de lignes est très gourmand en temps machine et le 1er traitement est très long (ensuite comme il y aura peu de dates à ajouter ça sera bcp plus rapide).
J'ai retesté et à-priori ça marche (de ce que j'ai compris que tu voulais en tout cas).
Si il y a un écart me dire précisément ce qui cloche, avec un bout de fichier traité et en rouge les anomalies et explications.
Je ne me suis pas occupé de la renumérotation car ça me paraissait bizarre de perdre une référence...
Et peut-être une anomalie dans tes données, regarde 'piege monté' en S6
Si ton numpit est de la forme xxxxExx excel le considère comme un nombre au format scientifique et te le transforme. Il faut absolument mettre cette colonne S au format 'texte' avant les saisies.
Pour détecter ces erreurs potentielles insère une colonne après S et en T2 saisis :
=SI(CHERCHE("+";S2)<NBCAR(S2);"à contrôler")
à recopier vers le bas
Ensuite un filtre automatique sur cette colonne te listera les anomalies à ressaisir
eric
Le dernier fichier que je t'ai fourni contient la macro mais c'est vrai que j'ai été avare d'explications.
J'ai pensé que tu aurais à relancer cette macro régulièrement et peut-être sur différents classeurs.
Donc ce fichier tu l'enregistres sous un nom plus parlant, par exemple TraitementDate.xls, tu peux nettoyer les feuilles, en supprimer et mettre un petit modop si tu veux que ce soit plus propre.
Tu l'ouvres, tu ouvres le classeur que tu veux traiter et tu sélectionnes la feuille à traiter puis Ctrl+d et tu vas te faire un café...
Tu peux suivre l'évolution du traitement en bas de la fenetre et voir que ça tourne bien.
L'insertion de lignes est très gourmand en temps machine et le 1er traitement est très long (ensuite comme il y aura peu de dates à ajouter ça sera bcp plus rapide).
J'ai retesté et à-priori ça marche (de ce que j'ai compris que tu voulais en tout cas).
Si il y a un écart me dire précisément ce qui cloche, avec un bout de fichier traité et en rouge les anomalies et explications.
Je ne me suis pas occupé de la renumérotation car ça me paraissait bizarre de perdre une référence...
Et peut-être une anomalie dans tes données, regarde 'piege monté' en S6
Si ton numpit est de la forme xxxxExx excel le considère comme un nombre au format scientifique et te le transforme. Il faut absolument mettre cette colonne S au format 'texte' avant les saisies.
Pour détecter ces erreurs potentielles insère une colonne après S et en T2 saisis :
=SI(CHERCHE("+";S2)<NBCAR(S2);"à contrôler")
à recopier vers le bas
Ensuite un filtre automatique sur cette colonne te listera les anomalies à ressaisir
eric
frisoa
Messages postés
40
Date d'inscription
lundi 26 janvier 2009
Statut
Membre
Dernière intervention
31 janvier 2013
26 juin 2009 à 11:30
26 juin 2009 à 11:30
salut eric,
je viens de m'apercevoir que je ne t avais pas répondu.
ta solution marche très bien....ca m'a bien aidé!
en tout cas merci beaucoup pour ton aide
à une prochaine
je viens de m'apercevoir que je ne t avais pas répondu.
ta solution marche très bien....ca m'a bien aidé!
en tout cas merci beaucoup pour ton aide
à une prochaine
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
26 juin 2009 à 18:37
26 juin 2009 à 18:37
Bonjour,
Tu n'aurais pas été le premier ;-)
Ceci dit un retour fait toujours plaisir, merci et bonne pêche :-)
eric
PS: je met en résolu...
Tu n'aurais pas été le premier ;-)
Ceci dit un retour fait toujours plaisir, merci et bonne pêche :-)
eric
PS: je met en résolu...