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 :

Macro pour concatener + RechercheV sur VBA


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Ingénieur Production
    Inscrit en
    Février 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur Production
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Macro pour concatener + RechercheV sur VBA
    Bonjour,

    Je suis débutante en VBa, et je souhaiterai votre aide concernant mon problème

    Je souhaiterai automatiser une concaténation de deux caractères + un RechercheV de la formulé concatenée dans une autre Feuille.

    je vous joins le fichier Excel avec:
    - Feuil1: Une colonne avec des numéros de lots (1er caractère de ma formule concatenée)
    - Feuil1: Une ligne concernant des jalons (OA, OB ... qui est mon deuxième caractère de ma formule concatenée)

    - Feuil2: 1ere colonne avec des numéros de séquences (séquence = formule concatenée)
    - Feuil2: 2ème colonne avec des dates de jalons correspondant à chacune des séquences.

    Le but est de recopier cette date de jalon Feuil2 dans la case correspondante Feuil1.

    J'ai traduit comme j'ai pu mon code ...
    merci beaucoup pour votre aide !!!!!

    Bonne journée,

    Houda

    Classeur4.xlsm
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Je parcours Feuil1 de la ligne 2 à la dernière
    'A chaque ligne, je parcours de la colonne 2 à la dernière

    '1) je concatene valeur de la cellule (i1, ColonneLot) avec valeur cellule(LigneJalon,j1)
    'Je mets cette valeur dans une variable temporaire ("Sequence")

    '2) Il faut maintenant que j'aille chercher la valeur Sequence dans ma Feuil2 et renvoyer la date associée
    '==> Je parcours dans Feuil2 de la ligne 2 à la dernière
    'Si je trouve la valeur "Sequence" dans la cellule(i2,ColonneSequence)
    'Je renvoie la valeur de la cellule (i2,ColonneSequence+1) => et je mets la valeur dans cellule(i1,j1) de la Feuil1

    'Sinon je ne fais rien
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

  2. #2
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Bonjour,

    Pour concaténer en VBA, il faut utiliser le signe &. Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Dim sequence as string
    sequence = Range("A1").Value & "/" & Range("A2").Value
    Si dans A1 j'ai "bonjour" et dans A2 j'ai "hello", alors ma variable sequence sera "bonjour/hello".

    Pour cherche la valeur "sequence", on peut utiliser match qui prend pour argument : valeur à trouver, plage de recherche, argument pour indiquer si on veut une recherche exacte ou non. Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim i as integer
    i = Application.Match(sequence, Sheets("Feuil2").Range("A:A"),0)
    Cela renvoie le numéro de la ligne où l'on peut trouver sequence dans la colonne A.
    Attention : si la plage de donnée ne commence pas à la ligne 1, Match renvoie la position relative (à la première ligne de la page de donnée) de la valeur cherchée.
    Attention 2 : il faut une gestion des erreur si jamais "sequence" n'existe pas. Quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim i as integer
    If isError(Application.Match(sequence, Sheets("Feuil2").Range("A:A"),0)) = False Then
    i = Application.Match(sequence, Sheets("Feuil2").Range("A:A"),0)
    'ce qu'il faut faire en cas de match
    Else
    'ce qu'il faut faire dans le cas où il n'y a pas de match
    End if
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim i as integer
    On Error GoTo LineError
    i = Application.Match(sequence, Sheets("Feuil2").Range("A:A"),0)
    'ce qu'il faut faire si pas d'erreur
    Exit Sub  'exit sub, sinon on passe à la ligne d'erreur même s'il n'ya pas d'erreur
    LineError:
    'ce qu'il faut faire en cas d'erreur
    Ce dernier n'est pas très pratique s'il y a une boucle.

    Ensuite, il faut recopier la bonne valeur dans la bonne cellule (j'ai pas tout à fait compris qui va où, mais en gros il faut faire qqc comme ce qui suit) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(i1,j1).Value = Cells(i2, colSequence + 1).Value
    Ce n'est pas le code exact, puisqu'il faut rajouter les boucles etc. mais ce sont des idées.

  3. #3
    Candidat au Club
    Femme Profil pro
    Ingénieur Production
    Inscrit en
    Février 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur Production
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup !!!
    Vos exemples de codes vont beaucoup m'aider

    bonne journée,

    Houda

  4. #4
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Pas de quoi
    N'oubliez pas de passer la discussion en "résolu".
    Bon courage pour l'apprentissage VBA !

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

Discussions similaires

  1. [XL-2003] Macro pour gerer les doublons VBA
    Par Aetycc dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/03/2015, 15h22
  2. [XL-2007] Macro pour Impression conditionnelle sur une autre feuille
    Par titi08 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/02/2015, 17h49
  3. [XL-2010] Macro pour TCD créé sur feuille avec onglet de couleur et renommé à la date du jour
    Par ptiot70 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 03/10/2014, 12h18
  4. [WD-2007] Information pour un débutant sur VBA
    Par Sceeji82500 dans le forum VBA Word
    Réponses: 5
    Dernier message: 18/08/2010, 22h44
  5. Macro pour se déplacer sur une feuille excel
    Par arkorrigan dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/03/2010, 21h41

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