IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Excel : fusionner des cellules [WD19]


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 28
    Points : 15
    Points
    15
    Par défaut Excel : fusionner des cellules
    Bonjour à toutes et tous,

    Je suis devant un problème

    Je créé un fichier Excel avec toutes les données que je souhaite dedans, cellules avec des couleurs de fond, polices ... SAUF QUE, je n'arrive pas à fusionner 2 cellules (ou plus).

    J'ai dans ma cellule A1 le texte "TOTO" => Je souhaite la fusionner jusqu'à la cellule A5
    J'ai dans ma cellule A2 le texte "Matin" => Je souhaite la fusionner avec la cellule B3
    J'ai dans ma cellule A4 le texte "Matin" => Je souhaite la fusionner avec la cellule B5

    J'ai trouvé la propriété <Tableur>.FusionneCellule sur ce lien :https://doc.pcsoft.fr/fr-FR/?1000026322&verdisp=190

    Mais cela me met un message d'erreur : Propriété interdite.
    J'ai beau farfouiller sur le net ... je n'arrive pas à avoir un exemple fonctionnel.

    Par avance merci de votre aide

    Cordialement,

    Olivier

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 343
    Points : 9 482
    Points
    9 482
    Par défaut
    Bonjour,

    Il y a qqchose que je ne comprends pas : Tu parles d'excel et tu utilises une syntaxe du champ tableur...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 28
    Points : 15
    Points
    15
    Par défaut Excel : fusionner des cellules
    Bonjour frenchsting,

    Merci pour ta réponse, oui je sais, mais j'ai voulu essayer ne trouvant rien d'autre sur le net.

    Si tu connais une solution pour réaliser un fusionnage de cellules sous excel à partir de Windev 19 ... Je suis preneur.

    Cordialement,

    Olivier

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 343
    Points : 9 482
    Points
    9 482
    Par défaut
    2 possibilités :
    - Tu as un exemple de pilotage Excel (liaison OLE). De mémoire, la fusion, c'est merge(). Inconvénient : Cela oblige à avoir une version de Excel installée sur le poste.
    - Tu as la possibilité de t'orienter vers l'utilisation de xlsdocument et de xlsDonnée.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 28
    Points : 15
    Points
    15
    Par défaut Excel : fusionner des cellules
    J'ai trouvé un bout de code en OLE (si je ne me trompe pas)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    // Déclaration des objets excel
    objXLApp est un objet Automation dynamique
    MaFeuille est un objet Automation dynamique
    MaPlage est un objet Automation dynamique
    MonTableauAutomation est un tableau de 5 par 2 Variant
    MonTitre est une chaîne
    // Instance de Excel existante ?
    SI ObjetActif("Excel.Application") <> Null ALORS
    	// Récupération de l'instance de Excel existante
    	objXLApp = ObjetActif("Excel.Application")
    SINON
    	// Allocation de l'objet automation Excel
    	objXLApp = allouer un objet Automation "Excel.Application"
    FIN
    SI objXLApp = Null ALORS
    	Erreur("Impossible de lancer Excel.")
    	RETOUR
    FIN
    objXLApp>>Visible = True
    objXLApp>>workbooks>>Open("C:\Users\saogui\Desktop\monclasseur.xlsx") // ouvre le classeur
    MaFeuille = objXLApp>>Worksheets("Feuil1")
    POUR i = 1 A 5
    	MonTableauAutomation[i,1]="Donnée_A_" + i
    	MonTableauAutomation[i,2]="Donnée_B_" + i
    FIN
     
    MaPlage = MaFeuille>>Range("A2:B6")
    MaPlage>>Value = MonTableauAutomation
     
    MonTitre="FUSIONNER"
    MaPlage = MaFeuille>>Range("A1:B1")
    MaPlage>>merge
    MaPlage>>center
     
     
    MaPlage = MaFeuille>>Range("A1:A1")
    MaPlage>>Value = MonTitre
    La ligne : MaPlage>>center ne fonctionne pas mais je travaille dessus !

    Pour ta deuxième ligne de possibilités (xlsdocument et xlsdonnée) j'avoue que je ne vois pas trop ce que tu veux dire ;(

    Je vais essayer de trouver un listing des fonctions en OLE pour Excel, voir si je peux encadrer une cellule, modifier la police d'écriture, la couleur de fond ... etc

    Merci de ton aide

    Olivier

  6. #6
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 854
    Points : 5 391
    Points
    5 391
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Pas besoin de listing des fonctions OLE, ce sont les mêmes que celles des macros

    1-Créer une macro sous XL
    2-Eventuellement la modifier
    3-Coller le code obtenu dans Windev
    4-Remplacer '.' par '>>'

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 28
    Points : 15
    Points
    15
    Par défaut Excel : fusionner des cellules
    Bonjour Voroltinquo,

    Merci de ta réponse,
    Si j'ai bien compris ce que tu dis, j'ai fait cette macro :
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Sub Macro1()
        Range("A1:BJ1").Select
        With Selection
            .HorizontalAlignment = xlCenter
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = False
        End With
        Selection.Merge
        Range("A2:B2").Select
        With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = False
        End With
        Selection.Merge
    End Sub

    Ce qui signifierai que je colle ce code (en ayant remplacé les . par des >>) dans Windev ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Range("A1:BJ1")>>Select
    Selection>>HorizontalAlignment = xlCenter
    Selection>>WrapText = False
    Selection>>Orientation = 0
    Selection>>AddIndent = False
    Selection>>IndentLevel = 0
    Selection>>ShrinkToFit = False
    Selection>>ReadingOrder = xlContext
    Selection>>MergeCells = False
     
    Selection>>Merge
    Range("A2:B2")>>Select
    Selection>>HorizontalAlignment = xlCenter
    Selection>>VerticalAlignment = xlCenter
    Selection>>WrapText = False
    Selection>>Orientation = 0
    Selection>>AddIndent = False
    Selection>>IndentLevel = 0
    Selection>>ShrinkToFit = False
    Selection>>ReadingOrder = xlContext
    Selection>>MergeCells = False
    Selection>>Merge
    C'est bien cela ?

    Cordialement,

    Olivier

  8. #8
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 854
    Points : 5 391
    Points
    5 391
    Billets dans le blog
    1
    Par défaut
    Oui.
    Tu peux même faire sauter le valeurs par défaut, ça allégera le code.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 28
    Points : 15
    Points
    15
    Par défaut Excel : fusionner des cellules
    Voroltinquo,

    J'ai essayé de copier le code tel quel (le xsCenter, il ne le connaît pas) et cela me fait quelques erreurs.

    Je vais garder la solution (pour la moment) qui fonctionne.

    Cordialement,

    Encore merci à tous

    Olivier

  10. #10
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 120
    Points : 9 533
    Points
    9 533
    Par défaut
    xlsCenter est une constante prédéfinie, a priori une constante numérique.
    Tu peux peut-être trouver sa valeur sur des tutos VB.
    Mais sinon , dans VB, dans ta macro, tu fais msgBox(xlsCenter) et ça te donnera la bonne valeur.

    Et du coup, dans le code Windev, tu ne mets pas xlsCenter mais le nombre correspondant.

    Il doit y avoir possibilité aussi d'importer/télécharger cette liste de constantes.

    Un fichier .TXT du type :
    Constante
    Define XLSLeft -10023
    Define XLSCenter -10024
    Define XLSRight -10025
    J'ai mis des valeurs au hasard ; bien entendu, il faut les bonnes valeurs.
    Tu récupères un fichier de ce type, tu l'importes dans ton projet, et les constantes VB deviennent utilisables dans Windev.

  11. #11
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 854
    Points : 5 391
    Points
    5 391
    Billets dans le blog
    1
    Par défaut
    Liste et valeur des constantes XL
    Si tu es amené à utiliser souvent les automations XL, je te conseille de te créer un .WL

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/05/2009, 14h31
  2. Réponses: 5
    Dernier message: 28/02/2008, 08h44
  3. poi excel : fusionner des cellules
    Par don'de dans le forum Documents
    Réponses: 1
    Dernier message: 07/03/2007, 16h04
  4. Php et Excel - Fusionner des cellules
    Par krolineeee dans le forum Langage
    Réponses: 1
    Dernier message: 08/08/2006, 10h37
  5. [] [Excel] Fusionner des cellules
    Par SamyD dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/12/2002, 18h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo