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

OpenOffice & LibreOffice Discussion :

Formule macro, boucle sur un tableau [LibreOffice][Tableur]


Sujet :

OpenOffice & LibreOffice

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Utilisateur non professionnel
    Inscrit en
    Mars 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Utilisateur non professionnel

    Informations forums :
    Inscription : Mars 2013
    Messages : 37
    Points : 22
    Points
    22
    Par défaut Formule macro, boucle sur un tableau
    bonjour


    J'ai trouvé dans ce site, une macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub BoucleTableauxFeuille()
    Dim Ws As Worksheet
    Dim ListObj As ListObject
     
    Set Ws = Worksheets("Données brutes")
     
    For Each ListObj In Ws.ListObjects
        MsgBox ListObj.Name & " : " & ListObj.Range.Address & vbCrLf & _
        "Style: " & ListObj.TableStyle
    Next
    End Sub
    qui permettrait, si j'ai bien compris, de "boucler" un tableau se trouvant sur une feuille.

    J'ai changé Ws = Worksheets("feuill1") en Ws = Worksheets("Données brutes") mais, je pense qu'il manque les références de mon tableau.

    Pouvez-vous m'aider ?

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Cette macro en VBA affiche successivement le nom des différents tableaux structurés situés sur une feuille Excel.

    Ce n'est pas une macro LibreOffice Basic.

    PS : Libre Office ne reconnait pas les tableaux structurés d'Excel.
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  3. #3
    Membre à l'essai
    Homme Profil pro
    Utilisateur non professionnel
    Inscrit en
    Mars 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Utilisateur non professionnel

    Informations forums :
    Inscription : Mars 2013
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Ok merci pour l'explication



    Je cherche le moyen de répéter un tableau se trouvant sur une feuille autant de fois que nécessaire. Je suppose que c'est possible avec des macros openoffice / libreoffice, mais concernant les macros, je suis nul part et je ne sais pas par où commencer.

    Je cherche pour le moment, des exemples de code afin d'apprendre mais j'en trouve beaucoup pour excel et pas pour libOO. J'ai sûrement mal cherché mais je n'en trouve pas.

  4. #4
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Un exemple :
    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
    Option Explicit
    Sub CopyTableau()
     Dim Classeur as Object
     Dim Feuille as Object
     Dim Tableau as Object
     Dim Cible as Object
     Dim Copie as Object
    	Classeur = thisComponent
    	Feuille = Classeur.Sheets.getByName("Feuille1")
    	Tableau = Feuille.getCellRangeByName("A1:D4")
    	Classeur.CurrentController.select(Tableau)
    	Copie = Classeur.CurrentController.getTransferable()
    	Cible = Feuille.getCellRangeByName("C22")
    	Classeur.CurrentController.select(Cible)
    	Classeur.CurrentController.insertTransferable(Copie)
    End Sub
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  5. #5
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 137
    Points : 84 795
    Points
    84 795
    Billets dans le blog
    15
    Par défaut
    Salut,

    Voici un tutoriel pour apprendre à utiliser les macros sous LibreOffice Calc : Utiliser oBasic dans le Tableur (Calc)

    Bonne lecture
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Utilisateur non professionnel
    Inscrit en
    Mars 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Utilisateur non professionnel

    Informations forums :
    Inscription : Mars 2013
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    Bonjour

    Merci à vous deux pour votre aide.

    Malik , je vais aller lire le lien que tu m'as transmis

    Patrice740 , j'ai essayé ton code et effectivement celui-ci fait bien la copie de mon tableau , merci à toi.

    Mais j'ai deux soucis

    1° il copie les formules de mon tableau de départ et j'aimerai n'avoir que les valeurs et non les formules du tableau de départ. Sinon lors de la copie il modifie les valeur en fonction de la zone de copie d'où des erreurs #REF
    2° De plus j'aimerai ajouter une boucle pour que la copie soit répétée autant de fois que nécessaire.

    Après lecture de la docu et recherche çi et là, j'ai trouvé un code (il devrait copier que les valeurs et non les formules) et je l'ai modifié en tenant compte des infos de ton code et de la docu mais il y a un problème donc je n'ai pas pu vérifier le résultat

    Ou peut-on modifier ton code pour qu'il ne copie que les valeurs et non la formule pour éviter un problème de référence ?

    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
     Option Explicit
            Sub CopyTableau()
             Dim Classeur as Object
             Dim DonneesCopier, DonneesColler, oRange, da as Object
             Dim nbreMois, i As Integer
             Dim Args(),Opts()
     
     
     
     
    Classeur = ThisComponent          
    DonneesCopier = Classeur.Sheets().getByName("Données brutes")
    nbreMois = DonneesCopier.getCellRangeByName("AA13")
    ' on copie la plage de cellules source
    oRange = DonneesCopier.getCellRangeByName("AD2:AI205")
    da = oRange.getDataArray
    ' on choisit la feuille de destination
    DonneesColler = Classeur.Sheets().getByName("Données brutes")
    ' on colle la plage de cellules source dans la plage destination
    oRange = DonneesColler.getCellRangeByName("AM2:AS205") 'la plage doit être de même taille que celle de la source
     
     
    oRange.setDataArray(da)
     
     
    End Sub

    Le problème, il y a une erreur d'exécution au niveau de la ligne "oRange.setDataArray(da)"
    Erreur de variable ?

    Pour la boucle j'avais imaginé de mettre quelque chose comme cela

    nbreMois , donnée venant de la feuille "Données brutes"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i=0 to nbreMois-1
    oRange.setDataArray(da)
    next
    C'est correcte ?




    Merci

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

Discussions similaires

  1. Explication pour une boucle sur un tableau ( débutant)
    Par serna dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/04/2015, 10h44
  2. [XL-2007] Boucle sur un tableau nommé
    Par thorgal1612 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/11/2014, 10h10
  3. [XL-2010] Boucle sur un tableau
    Par octane dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/05/2013, 02h47
  4. Boucle sur un tableau de variable en SQL
    Par sekaijin dans le forum Débuter
    Réponses: 4
    Dernier message: 27/01/2010, 20h52
  5. [Tableaux] Boucle sur un tableau associatif
    Par alexfrere dans le forum Langage
    Réponses: 11
    Dernier message: 28/06/2006, 15h44

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