1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

WD CELLULE CONCATENNEE

Discussion dans 'Windev' créé par MAC95, Déc 11, 2021.

  1. MAC95

    MAC95 Member

    Inscrit:
    Nov 11, 2021
    Messages:
    31
    J'aime reçus:
    1
    Bonjour,

    Je souhaite extraire les dates de début et de fin de la colonne 26 pour les ajouter dans deux nouvelles colonnes de la même table. Ces dates sont concaténées.

    J'ai essayé avec les opérateurs sur chaines de caractères ou encore fonction droite gauche mais je ne m'en sort pas. L'équivalence excel est (STXT). En effet les cellules concaténées n'ont pas les mêmes dimensions.

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Merci à vous,
     
    Tags:
  2. charlie

    charlie Active Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    205
    J'aime reçus:
    190
    Au moment de concatener , mets un signe entre tes dates par exemple "_" et avec taille tu pourras facilement extraire tes chaines
     
  3. Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    593
    J'aime reçus:
    328
    Bonjour,
    Je suppose que ce post est la suite de

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    , on ne récupérera donc que les dates. Elles seront formatées dans une liste, pour être passées en paramètre à une requête

    Dans un premier temps on va faire le ménage (i.e. supprimer les parenthèses,) puis extraire les dates et les inclure dans une chaîne.
    Code (Windev):
    FONCTION RécupérerDatesDepuisCLasseur(saMonCheminCLasseur est chaine, nNoCol est entier) : Chaine
    saDonnéesInitiales est chaînes    //Chaine qui récupère les données de la colonne souhaitée, chaque ligne est séparée de la précédente par une ","
    //Dans notre exemple : (15/12/2020,09:03,15/12/2020,17:04,08:01,,,,,),(21/12/2020,09:00,21/12/2020,17:00;08:00,,,,) etc
    saParamètre est chaîne    //Liste de dates, formatée pour être passée en paramètre dans une requête (clause IN)

    saDonnéesInitiales=RécupèresDonnéesXL((saMonCheminCLasseur,nNoCol)   //Je te laisse faire.
    SupprimerParenthèses(saDonnéesInitiales)
    saParamètre=RécupèreDates(saDonnéesInitiales)

    RENVOYER saParamètre
    Code (Windev):
    PROCÉDURE SupprimerParenthèses(saMaChaine est une chaîne)
    saMaChaine=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (saMaChaine,"(")
    saMaChaine=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (saMaChaine,")")
    Code (Windev):
    FONCTION RécupèreDates(LOCAL saDonnées est chaîne):chaîne
    saRes est une chaîne
    dMaDate est Date
    saMaChaine est une chaîne

    POUR TOUTE CHAÎNE saMaChaine DE saDonnées SÉPARÉE PAR ","
        dMaDate=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (saMaChaine,maskDateSystème)
        SI

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (dMaDate) ALORS
            SI

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (saRes,dMaDate)=0 ALORS    //On évite les doublons
                saRes=ConstruitListe(saRes,dMaDate,";")
            FIN
        FIN
    FIN
    RENVOYER saRes
    Code (Windev):
    FONCTION ConstruitListe(LOCAL saChaineInitiale est chaîne,LOCAL dMaDate est Date,LOCAL saSéparateur est chaîne):chaîne
    saNouvelleListe est une chaîne

    SI saChaineInitiale="" ALORS
        saNouvelleListe=dMaDate
    SINON
        saNouvelleListe=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("%1%2%3",saChaineInitiale,saSéparateur,dMaDate)
    FIN

    RENVOYER saNouvelleListe
     
     
    #3 Dandypunk, Déc 12, 2021
    Dernière édition: Déc 12, 2021
    Gemini1961 apprécie ceci.
  4. MAC95

    MAC95 Member

    Inscrit:
    Nov 11, 2021
    Messages:
    31
    J'aime reçus:
    1

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour,
    Je suppose que ce post est la suite de

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    , on ne récupérera donc que les dates. Elles seront formatées dans une liste, pour être passées en paramètre à une requête

    Dans un premier temps on va faire le ménage (i.e. supprimer les parenthèses,) puis extraire les dates et les inclure dans une chaîne.
    Code (Windev):
    FONCTION RécupérerDatesDepuisCLasseur(saMonCheminCLasseur est chaine, nNoCol est entier) : Chaine
    saDonnéesInitiales est chaînes    //Chaine qui récupère les données de la colonne souhaitée, chaque ligne est séparée de la précédente par une ","
    //Dans notre exemple : (15/12/2020,09:03,15/12/2020,17:04,08:01,,,,,),(21/12/2020,09:00,21/12/2020,17:00;08:00,,,,) etc
    saParamètre est chaîne    //Liste de dates, formatée pour être passée en paramètre dans une requête (clause IN)

    saDonnéesInitiales=RécupèresDonnéesXL((saMonCheminCLasseur,nNoCol)   //Je te laisse faire.
    SupprimerParenthèses(saDonnéesInitiales)
    saParamètre=RécupèreDates(saDonnéesInitiales)

    RENVOYER saParamètre
    Code (Windev):
    PROCÉDURE SupprimerParenthèses(saMaChaine est une chaîne)
    saMaChaine=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (saMaChaine,"(")
    saMaChaine=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (saMaChaine,")")
    Code (Windev):
    FONCTION RécupèreDates(LOCAL saDonnées est chaîne):chaîne
    saRes est une chaîne
    dMaDate est Date
    saMaChaine est une chaîne

    POUR TOUTE CHAÎNE saMaChaine DE saDonnées SÉPARÉE PAR ","
        dMaDate=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (saMaChaine,maskDateSystème)
        SI

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (dMaDate) ALORS
            SI

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (saRes,dMaDate)=0 ALORS    //On évite les doublons
                saRes=ConstruitListe(saRes,dMaDate,";")
            FIN
        FIN
    FIN
    RENVOYER saRes
    Code (Windev):
    FONCTION ConstruitListe(LOCAL saChaineInitiale est chaîne,LOCAL dMaDate est Date,LOCAL saSéparateur est chaîne):chaîne
    saNouvelleListe est une chaîne

    SI saChaineInitiale="" ALORS
        saNouvelleListe=dMaDate
    SINON
        saNouvelleListe=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("%1%2%3",saChaineInitiale,saSéparateur,dMaDate)
    FIN

    RENVOYER saNouvelleListe
     
    Cliquez pour agrandir...
    Bonjour,

    Hello oui ça fait bien suite à ce post :)

    Merci pour ton retour
     
  • MAC95

    MAC95 Member

    Inscrit:
    Nov 11, 2021
    Messages:
    31
    J'aime reçus:
    1
    Hello Dandypunk,

    Je viens d'importer dans une table le tableau excel avec les dates concaténées qui se trouvent en colonne 26 : => Format texte


    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    j'ai remplacé dans le code que tu m'a envoyé saDonnéesInitiales=RécupèresDonnéesXL((saMonCheminCLasseur,nNoCol) par sADonnéesInitiales = TABLE_ApercuParamétrage.Colonne26

    puis,

    SupprimerParenthèses(sADonnéesInitiales)

    Je n'ai pas de message d'erreur mais rien ne se passe dans ma table, as tu une idée ? Puis travailler directement dans ma table ?
     
  • Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    593
    J'aime reçus:
    328
    Le passage ne se fait pas par référence mais par valeur
    Il faut soit :
    1-Appliquer la fonction à la valeur de la cellule
    Code (Windev):

    SupprimerParenthèses(TABLE_ApercuParamétrage.Colonne26)
    2-Ré affecter le résultat à l'issue de l'exécution de la fonction
    Code (Windev):
    saDonnéesInitiales = TABLE_ApercuParamétrage.Colonne26
    SupprimerParenthèses(saDonnéesInitiales)
    TABLE_ApercuParamétrage.Colonne26=saDonnéesInitiales
     
    WX1331 apprécie ceci.
  • Partager cette page

    Chargement...