[Résolu][Calc] Ecrire dans une "séquence d'instructions"

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
Eric And Co
Membre OOrganisé
Membre OOrganisé
Messages : 63
Inscription : 07 sept. 2016 07:11
Localisation : Châtellerault (Vienne 86)

Re: [Calc] Ecrire dans une "séquence d'instructions"

Message par Eric And Co »

Bonjour

Après avoir régler le problème de réseau, je ma suis compliqué la vie en voulant utiliser le code

Code : Tout sélectionner

    Sub OuvrirTOTO_JM
           Dim Fichier As String
           Dim Wb As Object
           Dim Args()
           Dim Annee As long
           Dim oDoc As Object
           oDoc = Thiscomponent
           Annee = oDoc.Sheets("Feuille1").GetCellRangeByName("A1").Value
           Fichier = ConvertToUrl("T:\Ville\Structures\Feuilles_heures\TOTO_JM\Horaires de TOTO Jean Michel-" & Annee & ".ods")
           Wb = StarDesktop.loadComponentFromURL(Fichier,"_blank",0 ,Args() )
        end sub
En ne mettant plus
Fichier = ConvertToUrl("T:\Ville\Structures\Feuilles_heures\TOTO_JM\Horaires de TOTO Jean Michel-" & Annee & ".ods")
Mais Fichier = ConvertToUrl("T:\Ville\Structures\Feuilles_heures\TOTO_JM\Horaires de TOTO " & Annee & ".ods")
Et je mets dans A1
Jean Michel-2016
Cela devient donc

Code : Tout sélectionner

    Sub OuvrirTOTO_JM
           Dim Fichier As String
           Dim Wb As Object
           Dim Args()
           Dim Annee As long
           Dim oDoc As Object
           oDoc = Thiscomponent
           Annee = oDoc.Sheets("Feuille1").GetCellRangeByName("A1").Value
           Fichier = ConvertToUrl("T:\Ville\Structures\Feuilles_heures\TOTO_JM\Horaires de TOTO " & Annee & ".ods")
           Wb = StarDesktop.loadComponentFromURL(Fichier,"_blank",0 ,Args() )
        end sub
Et là, je replante sur : Wb = StarDesktop.loadComponentFromURL(Fichier,"_blank",0 ,Args() )
avant end sub
avec :
Erreur d'exécution du BASIC. Une exception s'est produite :
Type: com.sun.star.lang.IllegalArgumentException
Message: URL.seems to be an usupported one..

Je pense que cela vient du faite que ce n'est plus une date
J'ai donc fait un essai en remplaçant oDoc par oTexte mais je plante quand même

(Dim oTexte As string) à la place de (Dim Annee As long)
et
(oTexte = oDoc.Sheets("Feuille1").GetCellRangeByName("A1").Value)à la place de (Annee = oDoc.Sheets("Feuille1").GetCellRangeByName("A1").Value)

Mais cela bloque au même endroit
j’hésite entre :fou: ou :marto: ou encore :marto: ou les trois?
Windows 10 / LibreOffice 6.3.5.2
Regardez le ciel et vous verrez comment on est petit !!
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25175
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Ecrire dans une "séquence d'instructions"

Message par Dude »

Eric And Co a écrit :Message: URL.seems to be an usupported one..
Est-ce que tu lis ce qu'on t'écrit ? :evil:
L'URL que tu passes dans ta variable Fichier n'est pas correcte.
Avatar de l’utilisateur
Eric And Co
Membre OOrganisé
Membre OOrganisé
Messages : 63
Inscription : 07 sept. 2016 07:11
Localisation : Châtellerault (Vienne 86)

Re: [Calc] Ecrire dans une "séquence d'instructions"

Message par Eric And Co »

Bonjour

Pourtant elle fonctionne avec 2016 en cellule A1?
avec
(Dim oTexte As string) et (Dim Annee As long)
Dernière modification par Eric And Co le 22 sept. 2016 13:23, modifié 1 fois.
Windows 10 / LibreOffice 6.3.5.2
Regardez le ciel et vous verrez comment on est petit !!
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25175
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Ecrire dans une "séquence d'instructions"

Message par Dude »

Eric And Co a écrit :Pourtant elle fonctionne avec 2016 en cellule A1?
Et ? Apprends donc à déboguer par toi-même.

Fais donc un :

Code : Tout sélectionner

msgbox Fichier
pour les deux cas et compare le résultat.
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc] Ecrire dans une "séquence d'instructions"

Message par Piaf »

Bonjour
Soit tu récupères un nombre soit du texte

Code : Tout sélectionner

Dim Annee as String
Annee = oDoc.Sheets("Feuille1").GetCellRangeByName("A1").String
Devrait mieux le faire.
Fichier.png
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
Eric And Co
Membre OOrganisé
Membre OOrganisé
Messages : 63
Inscription : 07 sept. 2016 07:11
Localisation : Châtellerault (Vienne 86)

[Résolu][Calc] Ecrire dans une "séquence d'instructions"

Message par Eric And Co »

Bonjour

Je ne dirais que deux mots "Bravo" :bravo:
Cela va me permettre d'avancer dur

Merci encore à toi Ho! grand! Piaf :D

Voici l'exemple qui va bien
Je joints un zip : Total Toto2 de 36.65 Kio
qui contient 1 répertoire : Répertoire Toto de 5 fichiers
à mettre à la racine (C:\)
et 1 fichier :Toto Ouvrir

Dans la cellule A1 de Toto Ouvrir on trouve

Code : Tout sélectionner

=CONCATENER(B1 & "_" & C1 & "_" & $D$1)
Cela récupère les valeurs de B1, C1 et D1 (D1 étant commun à tous) qui correspond au nom des personnes titulaires du fichier

Etc.. pour A2.....

De cette manière si j'ai des personnes qui se rajoutent ou s'en vont, je n'ai que mon fichier à mettre à jour et le fichier Toto qui leur correspond
(nota : ce sera peut-être Brice_denice_2016) :)
Total Toto2.zip
Encore Merci à ceux qui m'ont aidés :super:

A+

Eric
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Eric And Co le 23 sept. 2016 18:53, modifié 1 fois.
Windows 10 / LibreOffice 6.3.5.2
Regardez le ciel et vous verrez comment on est petit !!