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 :

population d'un array en selectionnant un range [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2017
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 556
    Par défaut population d'un array en selectionnant un range
    Bonjour a vous tous,


    J'ai deux array a remplir mais j'ai 725 numéro à saisir pour chacun des array. Le premier array est une valeur de départ et le second array est la valeur d'arriver.


    Afin d'éviter les erreurs de saisies et avoir également un gain de temps, je voudrais avoir une fonction ou une sub permettant d'avoir chacune des valeurs d'un range le tout entre parenthèse et séparé de virgule afin que je puisse faire un copier coller dans mon autre code. Étant donné que je prends les informations d'un fichier "temporaire", je voudrais prendre ces informations et les coller dans un code.


    Par exemple j'aurais le range ("a1:a5)

    a1=2
    a2=6
    a3=7
    a4=2
    a5=9

    et je voudrais pouvoir avoir (2,6,7,2,9)


    Je sais qu'il existe WorksheetFunction.Transpose et application.transpose mais toute mes tentatives ont été des échecs en essayant d'utilisé ces functions






    merci pour votre aide qui m'est très précieuse !!

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Mauvaise idée de les transcrire en dur dans le code.
    Par contre tu peux faire
    Tablo=range("a1:a200")

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour

    Il semble que tu veuilles que ces données d'une plage soient mises dans un array et non une matrice.
    La chose est certes réalisable (assez facilement), mais le jeu en vaut-il la chandelle ?
    Quel est le but final ?
    En d'autres termes, à quoi, très précisément, veux-tu ensuite utiliser cet array ?
    Ta réponse nous permettra de déterminer s'il est vraiment indispensable d'utiliser un array ou si une matrice (voir la réponse de Mercatog, que je salue) peut également faire l'affaire

  4. #4
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2017
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 556
    Par défaut
    Bonjour a vous tous, (mercatog et unparia )



    Pour faire un histoire courte, j'ai des doublons dans une base de donné, j'ai environ 725 doublons que nous avons désactiver et qu'il risque d'avoir des problèmes d'intégrations dans mon logiciel. JE veux donc remplacer les 725 doublons par des numéro d'actif.


    Ce que j'ai pensé c'Est ceci (mercatog m'a aidé à faire le code dans un précédent code étant donné que je commence a peine a utilisé les array)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    valeur_depart = Array(99, 262, 264, 270, 273, 274, 276, 277, 278, 282, 283, 285, 291, 294, 295, 301, 306, 444, 475, 476, 479, 480)
    valeur_voulu = Array(17, 261, 261, 267, 271, 272, 261, 269, 261, 260, 271, 258, 271, 269, 254, 271, 296, 435, 261, 474, 427, 258)
     
    For i = 0 To UBound(valeur_depart)
     
    Range("no_format_travail").Replace What:=valeur_depart(i), Replacement:=valeur_voulu(i), LookAt:=xlWhole
     
     Next i
    Il manque énormément de valeur dans mes array et en saisisant j'ai constaté qu'il est tres facile de faire des erreurs.


    J'ai une liste dans un fichier excel des doublons et leur équivalent en produit actif, mais je voudrais éviter de trainer dans mon document de travail une copie de cette feuille.



    JE veux donc trouver une solution pour éviter de saisir les 725 doublons et 725 équivalent et les erreurs toute en évitant de trainer un autre feuille dans mon fichier de travail.


    Il y a peut être d'autre solution plus rapide et aussi efficace



    en vous remerciant !!!

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    ça ne serait pas opportun de dédier deux colonnes d'une feuille du classeur qui permettra de changer l'ancienne valeur par la nouvelle!

    Coder un array en dure de 750 valeurs... quelle est la valeur ajouté ou l'utilité.

    En plus, est ce que ceci est répétitif ou sur un seul fichier

  6. #6
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2017
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 556
    Par défaut
    Bonjour mercatog

    ça ne serait pas opportun de dédier deux colonnes d'une feuille du classeur qui permettra de changer l'ancienne valeur
    Pour cette question, oui il serait possible que je copie la feuille ayant les colonne des doublons ainsi que le produit a pointé.


    Coder un array en dure de 750 valeurs... quelle est la valeur ajouté ou l'utilité.
    Étant donné que je connais pas d'autre solution dû a mon niveau de VBA c'Est à ce que j'ai aboutie. Effectivement 750 valeur X2 c'Est plus que pénible. Donc c'Est le poruqoi de vouloir "by passer" cette étape


    En plus, est ce que ceci est répétitif ou sur un seul fichier
    C'est pour mettre dans un code dans mon personnal.xlsb dans un fichier e travail qui va etre utilisé a plusieurs reprise. Donc cette conversion est pour un fichier qui va etre réutilisé.





    Possiblement que vous avez de meilleur solution que les arrays.



    J'attends donc de vos nouvelles, chers ami

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

Discussions similaires

  1. selectionner un range dans une feuille
    Par Mimosa777 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 11/06/2008, 17h00
  2. [VBA-EXCEL] selectionner un range en fonction d'une valeur
    Par cladsam dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/03/2007, 22h33
  3. Réponses: 2
    Dernier message: 28/08/2006, 11h17
  4. [VBA-E]transformer array en tableau type range
    Par matel dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/03/2006, 09h50
  5. [VBA-E] demande à l'utilisateur de sélectionner un range en VBA
    Par pascal123 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/01/2004, 12h47

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