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

Macros et VBA Excel Discussion :

Création d'une commandbar multilingue


Sujet :

Macros et VBA Excel

  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut Création d'une commandbar multilingue
    bonjour a tous
    j'ai un petit schmilblick avec un TS avec des formules

    quand j'ajoute une ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub AddRow()
        Range("Tableau2").Select
        ActiveSheet.ListObjects("Tableau2").ListRows.Add
    End Sub
    j'ai les formules qui me donnent #VALEUR!
    je suis obligé de les selectionner pour aficher la formule et taper enter
    j'ai essayé calculate sous toutes ces moutures (application,activesheet,activesheet.cells(x,y))mais rien n'y fait
    mon excel est fainéant il veux pas calculer

    une idées du comment on fait cette bouteille de lait??????

    Nom : Capture.JPG
Affichages : 355
Taille : 131,6 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    j'ai contourner le problème en désactivant le calculation avant le addrow puis en la réactivant après
    c'est pas top ca re calcule tout
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Une idée pas forcément la plus élégante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    dim Cellule as range
    dim TaLigne as range
    set Taligne= 'ici ta nouvelle ligne dans la table de données.
     
    for each Cellule in TaLigne.Cells
       Cellule.Formula=Cellule.Formula
    next Cellule
     
    set TaLigne=Nothing
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour marot_r
    j'ai testé c'est plus long que la désactivation du calculate
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub AddRow()
        'Application.Calculation = xlManual
        ActiveSheet.ListObjects("Tableau2").ListRows.Add
        'Application.Calculation = xlAutomatic
    For Each Cellule In ActiveSheet.ListObjects("Tableau2").DataBodyRange.Cells
       Cellule.Formula = Cellule.Formula
    Next Cellule
    End Sub
    merci pour le retour
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    y a t il un moyen de désactiver le calculate sur la plage déjà calculée
    si oui comment??
    je voudrai désactivé celle qui son déjà avant le addrow
    Nom : demo2.gif
Affichages : 343
Taille : 123,9 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 949
    Points
    55 949
    Billets dans le blog
    131
    Par défaut
    Salut.
    Nom : 2019-05-22_213200.png
Affichages : 287
Taille : 47,1 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 949
    Points
    55 949
    Billets dans le blog
    131
    Par défaut
    Tu pourrais aussi utiliser SIERREUR(Calcul; ValeurSiErreur)... C'est un peu à cela que la fonction sert: contourner l'erreur...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonsoir Pierre
    a ben oui j'y ai pas pensé
    après j'ai toujours du mal il me manque toujours une parenthèses quelque par quand des formule sont imbriquées

    en l'etat ma formule c'est:

    =SI(Tableau2[[#Cette ligne];[FR]]<>"";NOMPROPRE(TRANSLAte(Tableau2[[#Cette ligne];[FR]]; "fr"; "en"));"en attente")
    Citation Envoyé par SIERREUR(TSI(Tableau2[[#Cette ligne
    ;[FR]]<>"";NOMPROPRE(TRANSLAte(Tableau2[[#Cette ligne];[FR]]; "fr"; "en"));"en attente");SI(Tableau2[[#Cette ligne];[FR]]<>"";NOMPROPRE(TRANSLAte(Tableau2[[#Cette ligne];[FR]]; "fr"; "en"));"en attente"))
    et c'est la mémé pour la colonne ITA et ALL

    autrement dit quand j'ajoute une nouvelle ligne j'ai les colonnes EN ITA ALL qui reçoivent "en attente" et des que j'inscris en FR j'ai les traductions

    la fonction qui est utilisée dans la formule
    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
     
    Option Explicit
     
    Sub test()
        MsgBox Translate(Cells(4, 3), "fr", "it")
        'formule:   "=Translate(cellule; "fr"; "en")
    End Sub
    '
    Public Function Translate(rng As Range, Optional From As String = "en", Optional ToLang As String = "fr") As String
        Dim Req As Object, URL As String, code As String, elem As Object, x As Long
        Set Req = CreateObject("MSXML2.ServerXMLHTTP")
        URL = "https://translate.google.pl/m?hl=fr&sl=" & From & "&tl=" & ToLang & "&ie=UTF-8&prev=_m&q=" & rng.Text
        'Debug.Print URL
        Req.Open "GET", URL, False
        Req.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
        Req.send ("")
        code = Req.responsetext
        'Debug.Print code
           With CreateObject("htmlfile")
            .body.innerhtml = code
             For Each elem In .all
                If Not IsNull(elem.getattribute("dir")) And elem.tagname = "DIV" Then x = x + 1
                'Debug.Print elem.innertext
                If x = 3 Then Translate = elem.innertext: Exit For
            Next
        End With
    End Function
    EDIT:
    j'ai testé ca marche pas j'ai encore du rater quelque chose
    surtout que je veux garder la condition sur si FR<>""
    =SIERREUR(TSI(Tableau2[[#Cette ligne];[FR]]<>"";NOMPROPRE(TRANSLAte(Tableau2[[#Cette ligne];[FR]]; "fr"; "en"));"en attente");SI(Tableau2[[#Cette ligne];[FR]]<>"";NOMPROPRE(TRANSLAte(Tableau2[[#Cette ligne];[FR]]; "fr"; "en"));"en attente"))
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 949
    Points
    55 949
    Billets dans le blog
    131
    Par défaut
    Il y a pour moi deux problèmes dans ce que tu as mis en place.

    Sur le plan fonctionnel, aller rechercher les traductions sur Google à chaque fois que tu en as besoin est tout sauf productif (sauf à s'amuser à le faire, mais alors autant le faire avec des exercices qui ont du sens). On traduit une fois les libellés et on les stocke. Si demain tu veux utiliser ton classeur et que pour une raison ou l'autre tu n'es pas connecté, ça va pas le faire.


    Pour la structure de tes tableaux, le problème est qu'elle va devoir être modifiée ( a minima, ajout d'une colonne et, sauf construction alambiquée, modification de la formule) si tu ajoutes une nouvelle langue.

    Je t'avais donné dans une autre discussion une structure à deux tableaux pour réaliser cela facilement. Ca permet de ne pas mélanger la responsabilité de tes tableaux (un donne un texte en fonction d'une langue, l'autre décrit un contrôle) et ça permet surtout de n'avoir à toucher à rien lors de l'ajout d'une nouvelle langue.

    Voici deux tableaux, un qui récupère une version linguistique de ce que tu veux (contrôle, message, ...) et l'autre qui définit les contrôles de ta commandbar. INDEX-EQUIV en matricielle permet de récupérer facilement le texte d'un contrôle en fonction de la langue, que ce soit en Excel ou en VBA.

    Nom : 2019-05-23_064615.png
Affichages : 287
Taille : 12,0 Ko


    Si tu veux ajouter l'italien, tu saisis simplement les données dans le tableau des textes et le tour est joué, sans que rien d'autre doive être modifié dans ta structure ou dans ton code.

    Nom : 2019-05-23_064801.png
Affichages : 286
Taille : 14,5 Ko




    Au passage, la version 2007 est puante pour ce qui concerne les références structurées, et je doute que tes références structurées passent en 2010 et dans les suivantes.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    oui c'est vrai apres ca devient lourd

    si tu me parle des formule en disant "les références structurées" sache que ca passe sur 2013 32 bits
    mais tu a raison je vais faire sans formule pour le tableau créateur j'ai même pensé a utiliser l'évènement change pour toutes des colonnes langues

    et je vais ajouter un tableau que je mettrais a jour par un bouton ou quelque chose comme ca

    juste une question en ce qui concerne l'organisation de mes données actuelles

    pour une plage classique on peut dire "range ("A:F") peut on faire la même chose avec un TS du genre[[FR]:[AL]] ????

    edit ok c'est bon je l'ai fait avec l'enregistreur de macro et ca ma donner la syntaxe
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut comment recuperer un plage precise dans un tableau structuré
    bonjours a tous

    je voudrais bien connaitre la syntaxe pour récupérer la plage entre 2 colonnes dans un tableau structuré
    mais attention je ne veux que le header

    exemple ici je récupère la ligne 1 du DataBodyRange concernant ces colonnes sauf que je veux le header
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test()
     ligne = WorksheetFunction.Index(Range("Tableau2[[FR]:[DE]]").Value, 1, 0)    'exemple de récupération de la ligne 1 de la plage en paramètre
        Debug.Print Join(ligne, ";")
    End Sub
    edit

    bon j'ai trouvé une solution simple je ne sais pas si c'est propre mais bon
    en fait j'utilise l'offset tout simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test()
     ligne = WorksheetFunction.Index(Range("Tableau2[[FR]:[DE]]").Offset(-1).Value, 1, 0)    'exemple de récupération de la ligne 1 de la plage en paramètre
     Debug.Print Join(ligne, ";")
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 753
    Points : 28 603
    Points
    28 603
    Billets dans le blog
    53
    Par défaut
    Bonjour Patrick,
    Solution rapide (je n'ai pas creusé plus loin)
    La ligne ci-dessous te renvoie l'adresse de la plage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print Evaluate("=Tableau1[[#Headers],[FR]:[EN]]").Address
    donc le code ci-dessous permet de définir un Range partiel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      Dim rng As Range, addr As String
      addr = Evaluate("=Tableau1[[#Headers],[FR]:[EN]]").Address(external:=True)
      Set rng = Range(addr)
      rng.Select
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    merci Philippe
    comme d'habitude j'avais oublié la virgule
    qué galère ces TS

    PS:
    donc le code ci-dessous permet de définir un Range partiel
    la première sans ".Address"aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test154() 'Archive
    'récupérer une partie d'un range du header(tableau structurés)
    Debug.Print TypeName(Evaluate("=Tableau2[[#Headers],[FR]:[EN]]")) '.Address
    End Sub
    je vais essayer de trouver la formule pour les non contigües pour mes archives

    merci encore
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #14
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 753
    Points : 28 603
    Points
    28 603
    Billets dans le blog
    53
    Par défaut
    Bonjour Patrick,
    Ce n'est pas le TS qui est en cause mais tout simplement la syntaxe qui sépare les arguments entre Excel et le VBA. Ceux qui ont la même Option de région dans Windows que les américains n'ont pas ce soucis parce-que dans ce cas la séparation des arguments en Excel est la virgule
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut question
    re
    1°question1
    y a t-il plus simple en terme de syntaxe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test155() 'Archive
    'récupérer une partie d'un range du tableau structurés  non contigües sans le header(DataBodyRange)
    Debug.Print Range("Tableau2[[FR]], Tableau2[[IT]],Tableau2[[DE]]").Address
    End Sub
    '
    2°question2
    ne donne pas le resultat que je souhaite
    je souhaiterais récupérer les colonnes en entier (headers inclus)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test156() 'Archive
    'récupérer une partie d'un range (tableau structurés) non contigües avec le header!!!
    Debug.Print Range("Tableau2[[#HEADERS],[FR]], Tableau2[[#HEADERS],[IT]],Tableau2[[#HEADERS],[DE]]").Address
    End Sub
    merci pour les retours je galère terrible avec le TS
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  16. #16
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 753
    Points : 28 603
    Points
    28 603
    Billets dans le blog
    53
    Par défaut
    Bonjour Patrick,
    Avant de coder en VBA, as-tu simplement sélectionné manuellement les cellules du tableau structuré que tu veux référencer
    Voilà ce que tu aurais obtenus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Tableau1[[#Tout];[FR]:[EN]]
    soit en anglais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Tableau1[[#All],[FR]:[EN]]
    donc en VBA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Debug.Print Evaluate("=Tableau1[[#All],[FR]:[EN]]").Address
    Comme l'écrit régulièrement Pierre "Pensez Excel avant de penser VBA"
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  17. #17
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    merci Philippe
    c'est vrai j'ai l'enregistreur non de dieu
    des fois je sais pas ou j'ai la tête
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  18. #18
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 753
    Points : 28 603
    Points
    28 603
    Billets dans le blog
    53
    Par défaut
    Bonjour Patrick,
    J'ai simplement sélectionné la cellule F1 et j'ai écrit "=" et ensuite j'ai sélectionné les cellules en question et puis pour avoir la traduction, je vais dans la fenêtre d'exécution et j'écris simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print Range("F1").Formula
    Ensuite Copier/Coller et je l'insère dans mon code VBA
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    et mince avec tout ca j'ai foutu mon fichier en l'air en supprimant le module qu'il fallait pas
    obligé de tout recommencer et de mémoire
    en tout cas les TS me la simplifie pas la vie a moi
    bon ben j'ai du boulot
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  20. #20
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    bon j'ai testé et ca n'est pas cela que je cherche Philippe

    en fait c'est un truc du genre
    les colonnes FR et IT ne sont pas contigües
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print Range("Tableau1[[#all],[[FR],[IT]]]").Address
    et cela l'enregistreur ne te le donne pas tout du moins avec les références tableau mais avec les références cells comme une plage normale

    je vais peut être: être obligé de passer par une petite fonction "Union" pour ne pas avoir a coder une formule de fou
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. Ajouter une ligne dans un tableau
    Par kenru dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/10/2009, 16h10
  2. [DOM] ajouter une ligne a un tableau
    Par realkilla dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/02/2009, 16h51
  3. Réponses: 1
    Dernier message: 12/12/2008, 17h06
  4. Réponses: 9
    Dernier message: 15/06/2008, 11h13
  5. [vb6] Ajouter une ligne dans un tableau excel
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 13/06/2006, 16h41

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