Nombre d'occurence sur plusieurs colonnes et lignes

78chris a écrit :

RE

Quel est le format de l'export et comment est-il ouvert ?

Un fichier Excel avec extension xlsx.

78chris a écrit :

il n'a pas pu inverser.

De quel cas, vous parlez ? je ne vois pas de date inversée dans mon fichier synthèse.

78chris a écrit :

Tenter aussi clic droit dans un TCD, Onglets données, Nombre d'éléments à retenir par champ : Aucun

Afin de purger les données d'essais précédents. Clic droit actualiser : voir si les dates se reclassent.

Rien ne se reclasse !

Qu'est ce qui ne marche pas en fait ? je ne comprends malheuresment pas le souci. Ce que je vois comme erreur c'est que le regroupement par 7 jours ne répond pas bien à la question, car plusieurs interval ne commencent pas par un lundi. Alors quand on fait le tableau final de synthèse et on cherche la W16 (par exemple) dans les tableaux analyse, il trouve pas et il met zéro.

(je vais vérier si ce que je dis est correct ou pas)


78chris a écrit :

RE

Edit : je viens de vérifier sur d'autres fichiers.

En fait il y a un bug : EXCEL classe les semaines par ordre alphabétique et non chronologiques (du moins sur la version française, peut-être pas sur la version US car il y a pas mal de problèmes sur les dates dans les TCD depuis la version 2010 sur les versions non US).

Donc si tout le reste est OK, vous n'aurez pas mieux (à part préfixer les 52 semaines de 2017 manuellement mais il faudrait refaire chaque année donc pas génial). Dans la mesure où c'est la synthèse qui restitue, ce n'est finalement pas trop gênant puisque les dates sont les bonnes.

Ordre alphabétique ? ce sont des chiffres donc de quel ordre alphabétique il s'agit, s'il vous plait ?

Oui ! moi-même, je les 'ai classées par ordre mauellement dans mes premiers essais.

" préfixer les 52 semaines de 2017 manuellement mais il faudrait refaire chaque année donc pas génial). " En quoi consiste cette solution concrétement ? C'est genant certes, mais je ne vois pas du mal à la faire si qu'une fois par an. si ça donne une synthèse correcte.

RE

Voir mon message édité à propos du classement.

Par contre toutes les périodes listées dans les TCD sont bien du lundi au dimanche.


Edit

Le classement des TCD ne gêne pas la synthèse qui elle est classée et sert au graphique donc laissez tomber.

Pour l'ordre alphabétique : le TCD met la mention 30/01/2017 - 05/02/2017 comme un texte et donc classe caractère pas caractère donc d'abord sur le 1er chiffre du jour, puis sur le second chiffre du jour puis le 1er chiffre du mois etc, donc le 01/05 est avant le 03/07 et le 31/01 se retrouve à la fin...

78chris a écrit :

RE

Par contre toutes les périodes listées dans les TCD sont bien du lundi au dimanche.

Non !

Voici, la liste des dates que j'ai pour l'envoi :

30/01/2017 - 05/02/2017

27/02/2017 - 05/03/2017

24/04/2017 - 30/04/2017

01/05/2017 - 07/05/2017

29/05/2017 - 04/06/2017

19/06/2017 - 25/06/2017

03/07/2017 - 09/07/2017

31/07/2017 - 06/08/2017

06/11/2017 - 12/11/2017

C'est bizarre que ça commence toujours un mardi !

Peut-être, faudrait-il, commencer par un dimanche pour que ça tombe en lundi ..

RE

J'ai un calendrier de 2017 sous les yeux : ce sont bien tous des lundis...

D'ailleurs en reportant les dates en format date longue :

dates
78chris a écrit :

RE

J'ai un calendrier de 2017 sous les yeux : ce sont bien tous des lundis...

D'ailleurs en reportant les dates en format date longue :

Franchement, je ne sais pas ce qui m'arrive parfois !

Oui ! c'est bien lundi.

Quelque recommandation ou imperfection mineurs à régler avant de clôturer ce fil, s'il vous plait ?

Pour le truc de W notamment, je vais le revoir.

De plus, je songe à une macro pour le truc pénible à chaque fois qui consiste à convertir la colonne en Date et supprimer les 4 NA qui existent. J'ai testé une macro mais ne convertit pas correctement et laisse beaucoup de text.

Au pire pour les 4 NA je vais les supprimer depuis la source. c'était une erreur de saisie quelqu'un voulait écrire peut-être not available mais il devait laisser le champ vide tout simplement

Re

Ceci devrait fonctionner pour 3 colonnes se suivant (colonne de la 1ère date à adapter si pas Q, ainsi que classeur et feuille)

 Sub MAJDates()

Dim date1 As Range
    Set date1 = Workbooks("Exemple.xlsx").Worksheets("Feuil1").Range("Q:Q")

    For i = 0 To 2

        date1.Offset(0, i).TextToColumns Destination:=date1.Offset(0, i), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
            Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
            :=Array(1, 4), TrailingMinusNumbers:=True
    Next i
End Sub
78chris a écrit :

Re

Ceci devrait fonctionner pour 3 colonnes se suivant (colonne de la 1ère date à adapter si pas Q, ainsi que classeur et feuille)

 Sub MAJDates()

Dim date1 As Range
    Set date1 = Workbooks("Exemple.xlsx").Worksheets("Feuil1").Range("Q:Q")

    For i = 0 To 2

        date1.Offset(0, i).TextToColumns Destination:=date1.Offset(0, i), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
            Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
            :=Array(1, 4), TrailingMinusNumbers:=True
    Next i
End Sub

Merci beaucoup ! Vous êtes vraiment balèze, il marche très bien.

Qu'est ce que vous me proposez pour m'en servir. je le laisse comme cela dans doc.txt et je le copier coller à chaque export ?

Ou plutôt je l'enregistre dans un fichier Excel vide, et je déplace la feuille du fichier export vers celui où j'ai enregistré la macro ?

Une macro doit-être liée à un fichier excel, non ? ou plutoiot on peut faire appel à elle depuis n'importe où.

RE

Le mieux est soit un classeur vierge soit un classeur de macros complémentaires (xlam) qu'on peut activer à l'ouverture d'excel ou lancer manuellement au choix.

Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.

J'ai vraiment appris grâce à ce fil.

Juste pour que je maitrise bien.

Dans le code suivant :

 Sub MAJDates()

Dim date1 As Range
    Set date1 = Workbooks("AZE.xlsx").Worksheets("owssvr").Range("Q:Q")

    For i = 0 To 2

        date1.Offset(0, i).TextToColumns Destination:=date1.Offset(0, i), [b]DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
            Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
            :=Array(1, 4), TrailingMinusNumbers:=True
    Next i[/b]
End Sub

la partie en gras : Pourriez-vous, me la expliquer ?

S'agissant de vos propositions pour la marco, j'avoue avoir rien pigé sur la deuxième solution. Je ferai la première ou je la copie manuellement tout bêtement : copier-coller

RE

Cela correspond aux options de la fenêtre convertir : voir l’aide de la fonction VBA TextToColumns.

On pourrait enlever les option TextQualifier et TrailingMinusNumbers mais elles ne gênent pas

FieldInfo est le plus important : format initial de la date

Je me suis rendu compte que je peux actualiser le fichier export directement en ligne en cliquant sur : Actualiser dans l'onglet Création après insertion des données à partir du Web

Toutefois, quand j'actualise le tableau, le regroupement que j'ai fait par semaine dans les TCD se détruit et les tableaux de synthèse mettent zéro partout.

RE

J'ai demandé à plusieurs reprises d'où venaient tes données sans réponse de ta part.

Là tu parles du Web...

Si tu as le fichier de synthèse ouvert pendant que tu actualises la source de données, avec des dates au format texte, rien d'étonnant à ce que tout saute...

L'actualisation et la conversion des dates doit se faire avec le classeur de synthèse fermé.

78chris a écrit :

RE

J'ai demandé à plusieurs reprises d'où venaient tes données sans réponse de ta part.

C'est une application de l'entreprise accessible par le Web. Moi-même je n'avais pas une claire idée sur ce point en particulier car le pc sur lequel je bosse est le mien et ne permet pas d'accèder à l'application et je n'étais même pas au courant de cela.

78chris a écrit :

Si tu as le fichier de synthèse ouvert pendant que tu actualises la source de données, avec des dates au format texte, rien d'étonnant à ce que tout saute...

Mais moi, suite à la demande de mon tuteur j'ai tout repris ce soir dans le même classeur. letableau export est une feuille comme synthèse et analyse . (J'espère que je n'ai pas fait une grosse bêtise?)

Pourquoi j'ai fait cela ?

car Deuxième point :

L'intérêt est aussi (je viens de découvrir cela aussi) est de permettre à d'autre collaborateurs dans d'autres sites de voir les KPI's directement. Donc je leur envoie juste le fichier excel qui eglobe toutes les feuilles et actualisent la feuille export (car ils ont accès à l'appli) et alors ils voient les KPI'S.

Si tu as le fichier de synthèse ouvert pendant que tu actualises la source de données, avec des dates au format texte, rien d'étonnant à ce que tout saute...

Oui, je suis d'accord car c'est le format text. mais même si je corrige et je mets à jours les TCD je dois refaire les regroupement, car il se détruit en actulisant. ( ce qui est normal oui! car le regroupement n'est pas possible pour les texts, c'est ça ?)

Dernier point bizzare : la macro pour convertir en date marche nickel ! mais quand je souvegarde on me demande de choisir autre format excel supportant les macros et bien dès que je le fais la macro ne foncitonne plus. et j'ai changé bien sûr l'extention du fichier excel dans le code VBA. Le message d'erreur qui s'affiche est vba : erreur 9 indice n'appartient pas à la sélection

RE

Oui si une cellule date contient du texte le regroupement saute !

Dans ce cas il serait plus propre, puisque les data sont liées à une connexion externe, d'ajouter au tableau 3 colonne calculées qui reprennent les dates en les convertissant avec une formule du type

=SI(OU([@[Date de création]]="";[@[Date de création]]="#N/A");0;DATEVAL([@[Date de création]]))

Ces colonnes s'adapteront à la hauteur du tableau importé et les TCD continueront à fonctionner.

On peut éventuellement masquer les dates à 0 dans ces colonnes par un format de nombre personnalisé.

78chris a écrit :

RE

Oui si une cellule date contient du texte le regroupement saute !

Dans ce cas il serait plus propre, puisque les data sont liées à une connexion externe, d'ajouter au tableau 3 colonne calculées qui reprennent les dates en les convertissant avec une formule du type

=SI(OU([@[Date de création]]="";[@[Date de création]]="#N/A");0;DATEVAL([@[Date de création]]))

Ces colonnes s'adapteront à la hauteur du tableau importé et les TCD continueront à fonctionner.

On peut éventuellement masquer les dates à 0 dans ces colonnes par un format de nombre personnalisé.

J'ai compris cette solution et il me semble cohérente. mais si l'on ajoute une colonne (locale) quand on va actualiser le tableau seul les colonnes qui existent dans l'application métier seront actualisées ? ou plutôt excel fait un imort total du tableau et les colonnes que j'ai aoutées seront supprimées. (Question bête mais comme je n'ai pas accès à une source externe de chez moi je ne peux pas tester cela).

Dans ceci est le seul handicape ? c'est à dire si je fais cela et je n'aurai pas de souci du tout à l'actualisation du tableau ni le regroupement sera détruit et celui qui recevra mon fichier excel par mail n'aura pas du tout du mal non plus ?

Re

Quand tu passes par Données à partir du Web, cela crée une liaison dont le résultat s'affiche dans un tableau (au sens 2007-2016 = table)

Si tu ajoutes des colonnes, à droite du tableau elles s'intègrent à celui-ci et le nombre de lignes des ces colonnes ajoutées s'ajustera automatiquement lords de l'actualisation des données.

Pour que l'automatisme soit complet par la suite il faut donc refaire les TCD en les basant sur le tableau et non des colonnes entières dans ce cas (le nom du tableau doit apparaitre comme source du TCD) et utiliser ces colonnes ajoutées pour les dates au lieu des colonnes initiales.

Le VBA ne sert plus.

78chris a écrit :

Re

Quand tu passes par Données à partir du Web, cela crée une liaison dont le résultat s'affiche dans un tableau (au sens 2007-2016 = table)

Si tu ajoutes des colonnes, à droite du tableau elles s'intègrent à celui-ci et le nombre de lignes des ces colonnes ajoutées s'ajustera automatiquement lords de l'actualisation des données.

Pour que l'automatisme soit complet par la suite il faut donc refaire les TCD en les basant sur le tableau et non des colonnes entières dans ce cas (le nom du tableau doit apparaitre comme source du TCD) et utiliser ces colonnes ajoutées pour les dates au lieu des colonnes initiales.

Le VBA ne sert plus.

J'ai bien compris votre réponse. Je vais partir très tôt le matin pour faire cela.

Franchement, du fond de mon coeur, je vous remercie..

le nombre de lignes des ces colonnes ajoutées s'ajustera automatiquement lords de l'actualisation des données.

Obligatoire d'ajouter des colonnes à côté du tableau ? si j'ai bien compris en fin du tableau ?

ce serait plus simple d'ajouter une colonne à côté de la colonne date d'envoie et une deuxième à côté de réception ect. ça marcherait pas ?

Re

Startinov a écrit :

Obligatoire d'ajouter des colonnes à côté du tableau ? si j'ai bien compris en fin du tableau ?

ce serait plus simple d'ajouter une colonne à côté de la colonne date d'envoie et une deuxième à côté de réception ect. ça marcherait pas ?

Non, on ne peut s'intercaler à l'intérieur d'un import : c'est un bloc pour Excel.

Il faut les placer à droite ou à gauche (on peut d'ailleurs les masquer quand tout est au point).

Si tu ajoutes des colonnes, à droite du tableau elles s'intègrent à celui-ci et le nombre de lignes des ces colonnes ajoutées s'ajustera automatiquement lords de l'actualisation des données.

Quand je fais la formule pour convertir les fates. Elle affiche des date de ce format : 42213! pas JMA. je ferai quoi s'il vous plait ? je modifie ça manuellement par convertit date JMA ? Mince ..

Edit : Je l'ai onvertie en date courte et ça a marché.

Edit :

Les dates ne se regroupent pas ! ils disent que regourepement est impossible pour cette sélection pourtant j'ai bien vérifié qu'il y'a pas de texte et que tout est en date. :'( :'(

Edit :Le probleme vient du fait que justement des cellules sont en texte mais quand je convertie en date (par données-> convertir: Date JMA), il y'a a formule qui s'affiche de nouveau = SI(.................)

Mais j'ai tout essayé sans parvenir à résoudre cet obstacle.

Franchement, la lassitude me gagne, chaque fois que je me dis que ça y'est je suis proche, tout se remêt à zéro ... je suis bloqué depuis 3 heures sur le regroupement par date.

RE

Utilises-tu bien les nouvelles colonnes pour les TCD ?

Les TCD sont-ils bien basés sur le tableau et non une plage ou des colonnes ?

As-tu bien respecté la formule avec 0 comme alternative ? IL n'y a rien à convertir, juste le bon format d'affichage à choisir.

(Attention au vocabulaire qui peut prêter à confusion)

Rechercher des sujets similaires à "nombre occurence colonnes lignes"