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 :

Comment automatiser un copier-coller "complexe"


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Comment automatiser un copier-coller "complexe"
    Bonjour,

    Je suis actuellement en stage et j'aurais besoin d'aide afin faciliter mon travail et le finir à temps.
    Je m'explique, j'ai plusieurs codes dans une même cellule que je dois changer par un autre code.
    En fait chaque code est séparé d'un slash dans la cellule et je dois remplacer ce code par un nouveau, pour certaine cellule j'ai plus 15 codes et j'ai approximativement 1500lignes
    Ex: dans la cellule A1 il y a écrit: 20/51/64 Ce code doit être remplacé par un autre code du type AZEF20171S20/AZEF20171S51/AZEF20171S64 dans la même cellule.

    J'ai donc un fichier excel avec mon code original et un autre avec le nouveau code. Serait-il possible d'écrire un programme sur VBA qui puisse réalisé cette tache automatiquement ? C'est à dire sélectionner le nouveau code et le coller à la place de l'ancien.
    Si oui, je suis tout ouïe afin d'apprendre.
    Si non, c'est que je vais devoir me coller plus de 15000 copier/coller

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    Bonjour
    Est ce que les deux listes des codes se trouvent sur le même onglet?? ou deux onglets différents ??
    El le lien entre l'ancien et le nouveau code ?? y a t'il un clé ??
    Plus de détail et tu aura de l'aide des membres de ce super site
    Bonne continuation
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Une piste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    Function TransformerChaine(ByVal ChaineATransformer As String) As String
     
    Dim MaChaine As Variant
     
        Application.Volatile
        MaChaine = Split(ChaineATransformer, "/")
        If UBound(MaChaine) = 2 Then TransformerChaine = "AZEF20171S" & MaChaine(0) & "/" & "AZEF20171S" & MaChaine(1) & "/" & "AZEF20171" & "/" & MaChaine(2)
     
    End Function
    Cordialement.

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    Bonjour
    Voila sans VBA
    supposons en colonne A l'ancien Code
    En colonne B la partie fixe du code : AZEF20171S
    et en colonne C tu met la formule suivante :
    =CONCATENER(CONCATENER(CONCATENER(CONCATENER(CONCATENER(CONCATENER(CONCATENER(CONCATENER(B1;GAUCHE(A1;2));"/");B1));GAUCHE(DROITE(A1;5);2));"/");B1);DROITE(A1;2))
    et tu glisse vers le bas
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour à tous,

    Tout d'abord merci pour vos réponses rapides.
    @BENSSAR Les deux liste de codes se trouvent sur des fichiers différents. En gros les codes correspondent à des plats et je dois coller ces codents sur des produits.
    ex: la ciboulette est utilisé dans 3 plats différents qui sont 20/51/64 et je dois les transformer par AZEF20171S20/AZEF20171S51/AZEF20171S64.
    Et merci pour la formule, je vais la tester tout de suite.

    @Eric KERGRESSE Pensez-vous que votre code correspond toujours avec les information supplémentaire ci-dessus ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par AK.BANG Voir le message
    @Eric KERGRESSE Pensez-vous que votre code correspond toujours avec les information supplémentaire ci-dessus ?
    Oui si toutes les lignes doivent être corrigées avec AZEF20171S.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par AK.BANG Voir le message
    Bonjour à tous,

    Tout d'abord merci pour vos réponses rapides.
    @BENSSAR Les deux liste de codes se trouvent sur des fichiers différents. En gros les codes correspondent à des plats et je dois coller ces codents sur des produits.
    ex: la ciboulette est utilisé dans 3 plats différents qui sont 20/51/64 et je dois les transformer par AZEF20171S20/AZEF20171S51/AZEF20171S64.
    Et merci pour la formule, je vais la tester tout de suite.

    @Eric KERGRESSE Pensez-vous que votre code correspond toujours avec les information supplémentaire ci-dessus ?
    J'ai essayer votre code mais il ne s'applique pas comme il faut: pour 337/338/157 en A et KVEF20171S en B il me met en C KVEF20171S33/KVEF20171S8//KVEF20171S57


    Voici plus de précision: J'ai un premier fichier avec ce tableau (nouveau code)
    KV Entrée chaude Aubergine KVEC20171S217
    KV Desserts Mangue KVDS20171S518
    KV Poissons Bar vapeur KVPOI20171S288

    Mon autre fichier lui représente les ingredients

    Ciboulette 217/288
    Mangue 518
    Sel 217/288/
    Sucre 217/288/518

    Et je dois donc entrer le nouveau code du premier tableau ci-dessus dans l'autre tableau (celui avec les ingrédients).

    J’espère que ces informations vous permettront tous de vous faire une idée de ce que je dois réellement faire.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par AK.BANG Voir le message
    J'ai essayer votre code mais il ne s'applique pas comme il faut: pour 337/338/157 en A et KVEF20171S en B il me met en C KVEF20171S33/KVEF20171S8//KVEF20171S57
    Visiblement, vous n'avez pas utilisé ma solution....

    Pour résoudre votre problème, d'après ce que je comprends, il vous faut d'abord passer pas une table de correspondance code - chaîne.
    Il vous faut ensuite tester le nombre de / dans la fonction et créer une première boucle pour isoler chaque code. Il vous faut ensuite réinjecter la chaîne correspondante à partir d'une matrice en fonction du code isolé via une deuxième boucle.

    Bon courage.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Visiblement, vous n'avez pas utilisé ma solution....

    Pour résoudre votre problème, d'après ce que je comprends, il vous faut d'abord passer pas une table de correspondance code - chaîne.
    Il vous faut ensuite tester le nombre de / dans la fonction et créer une première boucle pour isoler chaque code. Il vous faut ensuite réinjecter la chaîne correspondante à partir d'une matrice en fonction du code isolé via une deuxième boucle.

    Bon courage.
    Je n'ai pas utilisé votre solution car vous avez spécifié qu'il est utile si toutes les lignes doivent être corrigées avec AZEF20171S. Or le "prefix" du code et variable en fonction du plat et du restaurant.

    Combien de temps cela peut-il prendre pour un novice de programmer un tel "programme" ?

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par AK.BANG Voir le message
    Combien de temps cela peut-il prendre pour un novice de programmer un tel "programme" ?
    C'est comme pour le fût du canon.... Mais sans doute beaucoup de temps.

    Le soucis est de comprendre l'organisation de vos tableaux. Avant votre dernier mail, on pouvait comprendre qu'un ingrédient ne pouvait être associé qu'à un seul libellé. Dans votre dernier mail, l'association se fait également selon le restaurant. Comment faîtes-vous le lien de cette deuxième possibilité avec le tableau A ?

  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 re
    bonjour
    oui a mon avis il y a un soucis de carrote et de chaise (je dis carrote et chaise c'est pas pour rien)
    quand je vois ceci

    Voici plus de précision: J'ai un premier fichier avec ce tableau (nouveau code)
    KV Entrée chaude Aubergine KVEC20171S217
    KV Desserts Mangue KVDS20171S518
    KV Poissons Bar vapeur KVPOI20171S288


    Mon autre fichier lui représente les ingredients

    Ciboulette 217/288
    Mangue 518
    Sel 217/288/
    Sucre 217/288/518

    je me dis par exemple comment veut il que excel devine ou il y a du sel ou pas ca fait pas parti de la classe workshhetfunction

    les entrées chaudes je supposé qu'il n'y en a pas qu'une alors comment veux tu que exel devine si une entrée chaude ou froide a de la ciboulette

    ensuite exemple pour la ciboulette il y a 217/288 que l'on retrouve dans aubergine et le bar vapeur

    est ce que ca veut dire que par rapport a la carte complète tu pourrait avoir des 46000 code pour ciboulette par exemple ????

    pose toi ces questions et demande toi si tes chefs ne t'ont pas envoyé a la chasse au dahut
    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
    Nouveau Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    bonjour
    oui a mon avis il y a un soucis de carrote et de chaise (je dis carrote et chaise c'est pas pour rien)
    quand je vois ceci

    Voici plus de précision: J'ai un premier fichier avec ce tableau (nouveau code)
    KV Entrée chaude Aubergine KVEC20171S217
    KV Desserts Mangue KVDS20171S518
    KV Poissons Bar vapeur KVPOI20171S288


    Mon autre fichier lui représente les ingredients

    Ciboulette 217/288
    Mangue 518
    Sel 217/288/
    Sucre 217/288/518

    je me dis par exemple comment veut il que excel devine ou il y a du sel ou pas ca fait pas parti de la classe workshhetfunction

    les entrées chaudes je supposé qu'il n'y en a pas qu'une alors comment veux tu que exel devine si une entrée chaude ou froide a de la ciboulette

    ensuite exemple pour la ciboulette il y a 217/288 que l'on retrouve dans aubergine et le bar vapeur

    est ce que ca veut dire que par rapport a la carte complète tu pourrait avoir des 46000 code pour ciboulette par exemple ????

    pose toi ces questions et demande toi si tes chefs ne t'ont pas envoyé a la chasse au dahut
    Excel n'a pas besoin de deviner si une entrée est chaude ou froide, il a juste besoin de prendre ce code KVEC20171S217 et de le coller dans toute les cellules qui contiennent le code 217
    Et en effet pour la ciboulette je peux avoir plusieurs code, j'en ai aproximativement 15 qui correspondent a des entrées et des plats.

    @Eric Je ne comprend pas votre question: "Dans votre dernier mail, l'association se fait également selon le restaurant. Comment faîtes-vous le lien de cette deuxième possibilité avec le tableau A ? "

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par AK.BANG Voir le message
    @Eric Je ne comprend pas votre question: "Dans votre dernier mail, l'association se fait également selon le restaurant. Comment faîtes-vous le lien de cette deuxième possibilité avec le tableau A ? "
    Si je prends le code 217 correspondant à Aubergine, peut-il y avoir plusieurs libellés associés ?

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Si je prends le code 217 correspondant à Aubergine, peut-il y avoir plusieurs libellés associés ?
    Il peut y avoir plusieurs libellés en effet car le code 217 est associé à tous les produits qui composent le plat d'Aubergine.

  15. #15
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,

    KV = ?
    EC = Entrée Chaude
    DS = Dessert
    POI= Poisson

    pour plat nom=code
    Aubergine = 217
    Mangue = 518
    Bar Vapeur = 288

    ingredients = dans
    ciboulette = 217 / 288
    mangue = 518
    sel = 217 / 288
    sucre = 217 / 288 / 518

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  16. #16
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,

    avec nouveau code (KVEC20171S217 --> plat nom=aubergine)

    ingredients = dans
    ciboulette = KVEC20171S217 / 288
    mangue = 518
    sel = KVEC20171S217 / 288
    sucre = KVEC20171S217 / 288 / 518

    ce qui équivaut à : replace 217 par KVEC20171S217

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par mjpmjp Voir le message
    bonjour,

    avec nouveau code (KVEC20171S217 --> plat nom=aubergine)

    ingredients = dans
    ciboulette = KVEC20171S217 / 288
    mangue = 518
    sel = KVEC20171S217 / 288
    sucre = KVEC20171S217 / 288 / 518

    ce qui équivaut à : replace 217 par KVEC20171S217

    @+JP
    Bonjour JP,

    Merci pour votre réponse mais je ne vois pas du tout ou vous en venir, pouvez-vous m'éclairer ?

    Merci d'avance.

  18. #18
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,

    je parlais de la "fonction replace"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Data=Replace(Data,"217","KVEC20171S217")
    Data=Replace(Data,"518","KVDS20171S518")
    Data=Replace(Data,"288","KVPOI20171S288")
    Ex: dans la cellule A1 il y a écrit: 20/51/64 Ce code doit être remplacé par un autre code du type AZEF20171S20/AZEF20171S51/AZEF20171S64 dans la même cellule.
    Data=A1

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

Discussions similaires

  1. jTextPane -> Comment alerté un copier / coller ?
    Par laulau49 dans le forum Composants
    Réponses: 13
    Dernier message: 04/02/2009, 14h55
  2. Automatisation de Copier-Coller d'Excel vers Word
    Par mfriess347 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/08/2008, 15h40
  3. comment empêcher le copier/coller dans une zone de texte
    Par hanafimohammed dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 22/05/2007, 20h57

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