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 :

sélection d'une plage de cellules dans la feuille active via Range(Cells(),Cells()) [WD18]


Sujet :

WinDev

  1. #1
    Membre habitué Avatar de Toytoy31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2010
    Messages : 74
    Points : 183
    Points
    183
    Par défaut sélection d'une plage de cellules dans la feuille active via Range(Cells(),Cells())
    bonjour à tous et toutes

    Je me permets de solliciter votre aide, afin de répondre à une question à laquelle je ne trouve de solutions...

    Mon problème :

    je suis en train de programmer via OLE un fichier Excel.

    Je sais qu'il existe une classe CExcel spécifique à Windev, mais elle ne répond pas à mes attentes..

    voici un petit bout de code, peut-être comprendrez-vous mon problème.

    //* il faut considérer que toutes les variables sont déclarées
    //* Pour la demande qui m'a été faite, je me vois contraint de piloter Excel avec ReferenceStyle = -4150 (Format des cellules en "L1C1", où L représente la ligne et C la colonne au lieu de "A1")

    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
     
    //** Je suis obligé de passer par le format "A1" afin de ne pas planter.. mais cela ne m'aide pas car plusieurs de mes cellules doivent être fusionnées
     
    sPlageCellulePeriode est une chaine = "A1:A1" //* => "L1C1" 
    sPlageCelluleCommerciaux est une chaine = "A2:A3" //* => ?? 
    iIColonneEnCours,iILigneEnCours sont des entiers
    iColonneSuivante,iILigneSuivante sont des entiers
     
    iILigneEnCours = Val(Milieu(P_SPlageCellule,2,Taille(Position(P_SPlageCellule,"C"))))
    iIColonneEnCours = Val(ExtraitChaîne(P_SPlageCellule,1,"C",DepuisFin))
     
    //* Modification temporaire du style : "A1"
    pautExcel>>Application>>ReferenceStyle = 1
     
    //* Modification, fusion, alignement et attribution de la valeur pour la plage/cellule
    pautExcel>>ActiveSheet>>Range(sPlageCellulePeriode)>>Select()
    pautExcel>>ActiveSheet>>Range(sPlageCellulePeriode)>>Merge()
    pautExcel>>ActiveSheet>>Range(sPlageCellulePeriode)>>HorizontalAlignment = -4108
    pautExcel>>ActiveSheet>>Range(sPlageCellulePeriode)>>VerticalAlignment = -4108
    pautExcel>>ActiveSheet>>Range(sPlageCellulePeriode)>>Value = P_sNom_Mois
     
    pautExcel>>ActiveSheet>>Range(sPlageCelluleCommerciaux)>>Select()
    pautExcel>>ActiveSheet>>Range(sPlageCelluleCommerciaux)>>Merge()
    pautExcel>>ActiveSheet>>Range(sPlageCelluleCommerciaux)>>HorizontalAlignment = -4108
    pautExcel>>ActiveSheet>>Range(sPlageCelluleCommerciaux)>>VerticalAlignment = -4108
    pautExcel>>ActiveSheet>>Range(sPlageCelluleCommerciaux)>>Value = P_sValeurPlagecommerciaux
    Ce que je souhaite, cela serait de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pautExcel>>ActiveSheet>>Range(sPlageCelluleCommerciaux)>>Select()
    par quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pautExcel>>ActiveSheet>>Range(Cells(iILigneEnCours ,iIColonneEnCours),Cells(iILigneEnCours,iIColonneEnCours+4))>>Select()
    Mais Windev me souligne en rouge les mots

    Que puis-je faire ?

    Merci par avance

    Cordialement
    Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag

    Bonne continuation et bon dev surtout

  2. #2
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour

    Tu utilises une méthode Cells sans préciser l'objet concerné
    Une petite modification à faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pautExcel>>ActiveSheet>>Range(pautExcel>>Cells(iILigneEnCours ,iIColonneEnCours),pautExcel>>Cells(iILigneEnCours,iIColonneEnCours+4))>>Select()

  3. #3
    Membre habitué Avatar de Toytoy31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2010
    Messages : 74
    Points : 183
    Points
    183
    Par défaut
    Je te remercie @hpascal

    je vais tester cela au plus vite et te donne des nouvelles, bien que je ne doutes pas de tes compétences en la matière

    merci
    Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag

    Bonne continuation et bon dev surtout

  4. #4
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    En fait je ne connaissais pas cette syntaxe d'Excel mais j'ai testé avant de te répondre et ça fonctionne, en tout cas chez moi

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

Discussions similaires

  1. Autoriser sélection d'une plage de cellule dans une feuille Excel
    Par philoflore dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/08/2008, 09h49
  2. Trouver une plage de cellule dans une autre plage
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 16/04/2008, 14h27
  3. Userform pour sélection d'une plage de cellule
    Par humbp dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/01/2008, 12h41
  4. Copier une plage de cellules dans un fichier fermé
    Par COCONUT2 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/07/2007, 17h23
  5. [VBA] Copier une plage de cellules dans un fichier fermé
    Par SFrane dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/01/2006, 16h52

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