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 :

Aller à la ligne VBA Excel


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Aller à la ligne VBA Excel
    Bonjour tout le monde,

    J'appelle à l'aide : J'ai codé VBA de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function RechTous(v, champRech As Range, ChampRetour As Range)
    a = champRech
    temp = ""
    For i = 1 To champRech.Count
    If a(i, 1) = v Then
    temp = temp & ChampRetour(i) & "; "
    End If
    Next i
    RechTous = Left(temp, Len(temp) - 2)
    End Function
    Et dans ma cellule où j'utilise ma fonction RechTous, j'ai inscris cette formule : =RechTous('Bon d''intervention'!H2;Clients!A3:A2001;Clients!B3:B2001)
    Ma fonction marche en me renvoyant les bonnes valeurs, sauf que j'aimerais qu'il aille à la ligne du dessous après chaque valeur reportée,
    comment puis-je faire ????


    Merci bcp par avance!

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2014
    Messages : 25
    Points : 29
    Points
    29
    Par défaut
    Salut

    Utilise vbcrlf

    "a" & vbcrlf & "b"
    donne
    a
    b

    A+

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta réponse rapide Par contre, j'ai essayé d'appliquer ce que tu as dit en modifiant le code comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function RechTous(v, champRech As Range, ChampRetour As Range)
    a = champRech
    temp = ""
    For i = 1 To champRech.Count
    If a(i, 1) = v Then
    temp = temp & ChampRetour(i) & " " & vbCrLf & " "
    End If
    Next i
    RechTous = Left(temp, Len(temp) - 2)
    End Function

    Mais ca ne marche pas, quand j'utilise la formule dans une cellule, il me renvoie les réponses à la suite dans la même cellule séparées d'une espace, or j'aimerais que les réponses soient sur une seule colonne (et aillent à la ligne suivante).

    Tu sais comment faire ?

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2014
    Messages : 25
    Points : 29
    Points
    29
    Par défaut
    Salut,

    Décidément je me plante tout le temps quand j'essaie de comprendre un problème

    Le problème c'est qu'une formule classique n'agit que sur une seule cellule. Les seules formules qui peuvent impliquer plusieurs lignes sont les formules matricielles mais j'en connais trop peu à ce sujet pour t'aider.

    Après tu peux tout faire en vba avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub RechTous(v, champRech As Range, ChampRetour As Range)
        Dim j As Integer
        a = champRech
        j = 1
        For i = 1 To champRech.Count
            If a(i, 1) = v Then
                Range("C" & (2+j)).Value = ChampRetour(i)
                j = j + 1
            End If
        Next i
    End Sub
    Ensuite tu crées la macro suivante qu'il faudra lancer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Trouve()
        RechTous Worksheets("Bon d'intervention").Range("H2").Value, Worksheets("Clients").Range("A1:A9"), Worksheets("Clients").Range("B1:B9")
    End Sub
    Quand tu lanceras la macro Trouve ça fera ce que tu demandes. Le problème c'est que les résultats ne se mettront pas à jour tout seul comme avec les formules :/

    Si vraiment tu veux que ça se fasse tout seul il faudra passer par les formules matricielles et il te faudra quelqu'un qu'y s'y connait mieux que moi.

    A+

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Ça va pas marcher.. Je vais trouver une solution ! Merci beaucoup pour l'info en tout cas

Discussions similaires

  1. compteur ligne vba excel
    Par melodyyy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/10/2006, 15h43
  2. [VBA][Excel]supprimer des lignes vierges
    Par Angel79 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/01/2006, 13h17
  3. [VBA Excel] Ajouter, supprimer une ligne ou collone range
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/11/2005, 15h53
  4. VBA EXCEL - Sélection d'une ligne suivant saisie
    Par brethomeau dans le forum Macros et VBA Excel
    Réponses: 48
    Dernier message: 15/11/2005, 17h41
  5. [VBA][Excel]Insérer une ligne
    Par loverdose dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2005, 16h27

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