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

C# Discussion :

[VS 2008][C#] informations avec get_Address pour automation Excel


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut [VS 2008][C#] informations avec get_Address pour automation Excel
    bonjour,

    je débute en C#.

    je crée un add-in excel et certaine questions se posent ( ben oui! )

    avec la méthode get_address notament.

    admettons que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (Excel.Range)Globals.ThisAddIn.Application.InputBox(
                                                "Select your data range",
                                                "Reference",
                                                oMissing,
                                                oMissing,
                                                oMissing,
                                                oMissing,
                                                oMissing,
                                                8);
    réfere à la cellule A1
    lorsque que demande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    txtSource.Text = SourceRange.get_Address(1, 1, Excel.XlReferenceStyle.xlA1, oMissing, oMissing);
    tout va bien, il me renvoie "$A$1"

    mais si cela réfère à une autre feuille comme MaFeuille!$A$1
    il me renvoie
    .... A1 simplement
    Alors, comment faire pour avoir la référence complete??

    merci de votre aide

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut excel application.inputbox,reference complete
    bonjour
    attention à completer les parametres external object ,internal object de Range.get_Address pour avoir une reference complete.
    code en vb.net à retranscrire (rng.Address):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      'INPUTBOX
            Dim rng As OXL.Range = Nothing
            'init inputbox sur une valeur de range et feuille quelconconque
            rng = oSheet2.Cells(5, 5)
            'specifier type:=8 => pour avoir des valeurs valides de  range
            rng = appExcel.InputBox("Select your data range", rng.Address, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type:=8)
            'param external object,internal object doit etre true pour avoir une reference 
            'complete(classeur->feuille->cellule)
            Me.TextBox1.Text = rng.Address(Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlReferenceStyle.xlA1, True, True)
    bon code.....
    bon code

  3. #3
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    merci merci merci merci

    Il faut le dire!

    c'est bien ça.

    à un détail pres.. il me met le nom du book également. En soi, ce n'es pas super grave, mais .. il y a moyen d'enlever?

    en tout cas merci

    Citation Envoyé par MOI
    ... Chui NUL ... lol

  4. #4
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut reference range
    bonjour
    quel est le besoin pourrait-on dire?
    Si c'est pour adresser un range ca n'est pas possible puisque l'adresse en literal ne peut contenir le nom de feuille("A1:B1 ou en relatif "R1C1:R2C2").
    Dans excel une variable range est toujours refere par rapport au workbook courant & à la feuille active.
    Dans cette optique propre à excel on peut utiliser le getrange pour obtenir le l'adresse interne du range de laquelle on extrait le numero de feuille pour la selectionner .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    Me.TextBox1.Text = rng.Address(Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlReferenceStyle.xlA1, False, True)
     
    Dim numSelSheet As Integer = rng.Worksheet.Index
    'apres on peut activer cette feuille par son numero et utiliser l'adresse literale  range renvoye pour s'y refere range(adressechaine)
    bon code...

  5. #5
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    Bonjour,

    et merci encore une fois de la réponse

    sinon, le besoin est simplement visuel.

    donc, merci pour toutes ces infos. je les garde précieusement

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

Discussions similaires

  1. Aide pour obtenir une information avec .get()
    Par pikapika07 dans le forum Programmation multimédia/Jeux
    Réponses: 2
    Dernier message: 28/12/2014, 16h10
  2. Réponses: 1
    Dernier message: 01/03/2014, 05h28
  3. Réponses: 5
    Dernier message: 01/09/2011, 02h43
  4. Réponses: 1
    Dernier message: 26/10/2009, 08h34
  5. Réponses: 19
    Dernier message: 24/05/2002, 16h36

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