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 :

Retourner la valeur d'une fonction sur une colonne


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Retourner la valeur d'une fonction sur une colonne
    Bonjour,

    je débute en VBA et me heurte à une incompréhension :
    je souhaite récupérer en A3, puis sur chaque cellule jusqu'à la fin de la colonne A : le résultat d'une fonction qui formatera un numéro de téléphone situé en B3 puis les cellules d'en dessous. j'utilise ceci dans ma macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                    Range(TxtColumnName & "3") = PubFctFormatNum(Range(TxtColumnName & "3").Offset(0, 1))
                    Range(TxtColumnName & "3", Range(TxtColumnName & "3").Range(TxtColumnName & "3:" & TxtColumnName & IntNbLine)).FillDown
    avec une fonction genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Function PubFctFormatNum(StrNum As Object) As String
     
        StrNum.FormulaR1C1 = _
            "=TEXT(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(RC[0],""+33"",""0""),CHAR(45),""""),CHAR(46),""""),CHAR(40),""""),CHAR(41),""""),""33(0)"","""")),""0#"""" """"##"""" """"##"""" """"##"""" """"##"")"
        PubFctFormatNum = StrNum
    End Function
    d'où vient mon erreur s'il vous plait ?

  2. #2
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut retourner la valeur d'une fonction sur une colonn
    Bonsoir,

    Et si tu donnais un exemple concret de ce que tu as en B et ce que tu veux obtenir en A car ta succession de 'substitute' donne le vertige.

    Quelle erreur VBA te signale t-il ?

    Cordialement,

  3. #3
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour renaudjean

    Il faut mettre la formule en A3 et non en B3 comme tu le fais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub tt()
    TxtColumnName = "A"
     
       Range(TxtColumnName & "3").FormulaR1C1 = _
            "=TEXT(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(RC2,""+33"",""0""),CHAR(45),""""),CHAR(46),""""),CHAR(40),""""),CHAR(41),""""),""33(0)"","""")),""0#"""" """"##"""" """"##"""" """"##"""" """"##"")"
     
     r = Range("B" & Rows.Count).End(xlUp).Row
     
         Range(TxtColumnName & "3").AutoFill Destination:=Range("A3:A" & r), Type:=xlFillDefault
     
    End Sub
    Docmarti
    Cordialement

    Docmarti.

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 11h18
  2. Réponses: 5
    Dernier message: 18/11/2007, 02h15
  3. Réponses: 2
    Dernier message: 17/04/2007, 18h14
  4. Réponses: 3
    Dernier message: 16/01/2006, 17h02
  5. Réponses: 4
    Dernier message: 17/03/2004, 18h24

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