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 :

Transformé une formule Excel en script VBA ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Par défaut Transformé une formule Excel en script VBA ?
    Bonjour,
    J'aimerais transformé cette formule :

    =RECHERCHEV(CONCATENER(L(2)C;CONCATENER("-";DROITE(L(1)C;2)));annuaire;2;0)

    en script VBA

    la formule permet de concatener les deux cellules sous elle meme puis d'aller chercher dans un onglet annuaire la valeur de la seconde colonne de cette onglet en fonction du resultat de la concatenation.

    ex:

    ma formule est ici "formule"
    la cellule N-1 est "N01"
    la cellule N-2 est "0-00"

    la concatenation donne la valeur "0-00-01"

    comme le tableau "annuaire" contient :

    cellule 1 cellule 2
    0-00-01 4546

    la fonction me retourne 4546

    merci de votre aide


  2. #2
    Membre expérimenté Avatar de conconbrr
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    Salut,

    Pour concaténer utilise simplement l'opérateur "&"
    Je pense que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range("Cellule1").value & range("Cellule2").value
    devrait suffire.

    En ce qui concerne la recherche utilses l'opérateur ça marche très bien et c'est très rapide.
    Un petit tour du côté de l'aide et tu devrais tout comprendre, sinon n'hésites pas on t'aideras

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Par défaut
    merci

    je débute en VBA alors dans la ligne de code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range("Cellule1").value & range("Cellule2").value
    comment peut on définir Cellule 1 et cellule 2

    comme étant les cellules sous la position de la cellule d'origine ?

    -------
    cellule
    -------
    cellule1
    -------
    cellule2
    -------

  4. #4
    Membre expérimenté Avatar de conconbrr
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    Utilises la fonction suivante : Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    worksheets("Feuil1").range("Cellule").offset(i,j).value
    Offset permet de décaler de i lignes et de j colonnes

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Par défaut je progresse doucement......
    J'ai un peu changé mon fusil d'épaule je suis donc arrivé au code suivant :

    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
    28
    29
    30
    31
    32
    33
     
     
    Option Explicit
     
    Sub Commentaires()
     
    Dim Cell
     
    For Each Cell In ActiveSheet.UsedRange
        If Cell.HasFormula Then
     
            With Cell
     
                On Error Resume Next
     
           If InStr(Worksheets("annuaire").Value, Cell.Value) <> 0 Then
     
       .Comment.Delete
       .AddComment
       .Comment.Text Text:=Cell.Value & Chr(10) & "Nom" & "Prénom" & Chr(10) & "Adresse m@il"
       .Comment.Shape.TextFrame.AutoSize = True
     
     
      Else
        MsgBox "valeur non trouvée"
    End If
     
     
     
            End With
        End If
    Next
    End Sub
    Avec ce bout de code, je cré un commentaires dans les cellulles où il y a des formules et si la valeur de la cellule est contenu dans la feuille Annuaire j'affiche cette valeur dans le commentaire.

    Mais je voudrais ajouter dans mon commentaire les champs nom prenom et adresse qui sont les valeurs des cellules à coté de la valeur trouvé dans la feuille annuaire.

    EX :

    Si la Cellule 12 de la feuille 1 à pour valeur 3022

    et que La feuille Annuaire possède une ligne:

    3022|dupont|jean|jdupont@babacool.fr|

    Je voudrais que le commentaire de la Cellule 12 de la feuille 1 soit :

    3022
    dupont jean
    jdupont@babacool.fr

    Je suppose que c'est .find qui doit faire l'affaire mais je ne vois pas comment ????

    Par avance Merci de ton aide conconbrr



  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    j'ai pas bien compris ton code , ote moi d'un doute elle ne fonctionne pas ta focntion InStr ...?

    tu peu utiliser les fonctions de feuilles de calcul pour effectuer la recherche.. en suposant que ton "code chauffeur" soit dans la 1° colonne de ta feuille adresse ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    dim iLg As integer  'Numéro de ligne conteant l'adresse
    On Error Resume Next
    iLg = 0
    iLg= Application.WorksheetFunction.Match(stType,Sheets("Adresse").Columns(1), 0)
    On Error goto 0
    reste plus qu'as utiliser iLg (si > 0) ... pour retrouver les valeurs des différentes colonnes

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

Discussions similaires

  1. [2008R2] Transformer une formule Excel en SQL
    Par PrinceCorwin dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/06/2014, 07h36
  2. Exécution automatique d'une formule Excel à partir de VBA
    Par jumiara dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/11/2010, 12h13
  3. [E-00] Transcrire une formule Excel en script VBA
    Par ritournelle dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 16/10/2008, 11h53
  4. Forcage sous VBA d'une formule excel
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/10/2007, 10h22
  5. [VBA]Passer une variable dans une formule Excel
    Par David1974 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/01/2006, 16h52

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