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 :

Concaténation références de cellules et point virgule


Sujet :

Macros et VBA Excel

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Par défaut Concaténation références de cellules et point virgule
    "Bonjour"

    J'ai une macro qui compare 2 feuilles et affiche la différence dans une 3è feuille.
    Ce que je voudrais, c'est écrire une formule dans la première case vide en fin de ligne, où toutes les colonnes seraient concaténer de la forme :
    =CONCATENER(A1 ; ";" ; A2 ; ";" ; A3 ; ";" ...)

    Or, dans le code VB de la macro,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Range(lastCol & k).Select //je sélectionne ma dernière colonne
    Syntaxe = ...
    ActiveCell.Value = Syntaxe
    si j'écris
    Syntaxe = "A1"
    la référence fonctionne correctement

    si j'écris
    Syntaxe = "=CONCATENER(A1;A2)"
    ou
    Syntaxe = "=CONCATENER(A1" & Chr(59) & A2 & ")"
    j'ai inlassablement le même message d'erreur sur la ligne ActiveCell.value :
    Erreur d'exécution 1004 : Erreur définie par l'application ou par l'objet
    Je sens bien que c'est le point virgule qui pose problème. or il faut que je résolve ce problème, car dans la formule finale, j'ai plus de 50 champs concaténés de la sorte...

    merci pour votre aide

  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
    Bonjour,
    formules dans feuille feuil2 de la colonne 1 à la colonne 10
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim i As Long, LastLig As Long
    Dim Frml As String
     
    With Sheets("Feuil2")
        LastLig = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 1 To LastLig
            Frml = Frml & ";A" & i
        Next i
        Frml = Mid(Frml, 2)
        .Cells(LastLig + 1, 1).FormulaLocal = "=CONCATENER(" & Frml & ")"
        .Cells(LastLig + 1, 1).AutoFill .Range(.Cells(LastLig + 1, 1), .Cells(LastLig + 1, 10))
    End With

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Par défaut
    j'avais effectivement trouver une façon de le faire en utilisant le FomulaLocal. Par contre, je suis obligé de saisir toutes mes colonnes (47) à la main, car le nombre de paramètres acceptés par la fonction Concaténer est limité à 30 !

  4. #4
    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
    Excel 2007 permet 255 paramètres.
    sinon tu peux concaténer intrinsèquement les valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim i As Long, LastLig As Long
    Dim j As Byte
    Dim Frml As String
     
    With Sheets("Feuil2")
        LastLig = .Cells(Rows.Count, 1).End(xlUp).Row
        For j = 1 To 47                             'De la colonne 1 à la colonne 47
            For i = 1 To LastLig
                Frml = Frml & .Cells(i, j).Value
            Next i
            .Cells(LastLig + 1, j).Value = Frml
            Frml = vbNullString
        Next j
    End With

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Par défaut
    J'ai essayé avec ta méthode, remis à ma sauce, mais j'ai une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     For j = 1 To LastLig2                         
                    For i = 1 To LastCol            'De la colonne 1 à la colonne 47
                        Frml = Frml & sw2.Cells(j, i).Value
                    Next i
                    sw3.Cells(LastCol + 1, j).Value = Frml
                    Frml = vbNullString
                 Next j
    Erreur d'exécution 424 : Objet requis
    sur la ligne Frml = Frml & sw2.Cells(j, i).Value

  6. #6
    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
    Et c'est quoi ta sw2 et ta sw3?

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

Discussions similaires

  1. LISTBOX rowsource : référence à des cellules fusionées
    Par alexxx69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/10/2005, 15h42
  2. [xhtml] représenter le point virgule
    Par nmujdzic dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/05/2005, 21h51
  3. [FLASH MX] Problème de point virgule
    Par noarno dans le forum Flash
    Réponses: 4
    Dernier message: 20/07/2004, 15h24
  4. lire le point-virgule dans un fichier .ini
    Par juflata dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 05/07/2004, 12h46
  5. [LG]Point virgule
    Par Louis-Guillaume Morand dans le forum Langage
    Réponses: 17
    Dernier message: 07/06/2003, 10h40

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