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 :

Formule trop longue pour FORMULAR1C1


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 93
    Par défaut Formule trop longue pour FORMULAR1C1
    Bonjour,

    Mon problème est le suivant : J'ai une formule LIREDONNEESTABCROISDYNAMIQUE très longue contenue dans un cellule texte.
    Je veux l'insérer en VBA dans une cellule sauf que la limite est de 255 cacaractères.

    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Formule as string
    Formule = "="
    For l = 0 To Round((Len(Cells(Cell.Row, Cell.Column + 3).Value) / 250) + 0.5, 0) - 1
    Formule = Formule & _
    Mid(Cells(Cell.Row, Cell.Column + 3).Value, 1 + l * 250, 250 + l * 250)           
    Next l
     
    Cells(NumeroCellIni, 6 + k).FormulaR1C1Local = Formule
    Mais cela ne fonctionne pas ... J'ai une erreur système

    Pourriez-vous m'aider svp ?
    Merci de votre aide !

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    et si tu la mets dans un nom et =nom dans la cellule, même limitation ?
    eric

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 93
    Par défaut
    Euh je ne comprends pas très bien ta réponse.
    Tu peux me l'écrire un VBA stp ?
    Dans un nom ? Tu veux parler de quoi comme variable ?

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Je ne comprends déjà pas la nécessité d'une boucle pour dresser une chaîne de caractères égale à tout ou partie d'une chaîne de caractères spécifiée (et ce : à compter du 1er caractère)

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 93
    Par défaut
    En fait le problème est que ma formule est trop longue.
    J'ai utilisé l'enregistreur de macro vba pour voir un peu comment il traitait ce cas et il le fait de cette facon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    FormulaR1C1 = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" & _
    "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" & _
    "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" & _
    etc
    J'ai donc voulu recréer cela avant de l'injecter dans ma .FormulaR1C1Local = Formule
    Mais cela ne fonctionne pas quand même

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
        Dim i As Long, f As String
        For i = 1 To 208
            f = f & "+$A$1+$A$2"
        Next i
        Names.Add "ma_formule", "=" & f 'formule dans le nom
        Debug.Print Len(Names("ma_formule").RefersTo) 'longueur "ma_formule" = 4993
        [B1].Formula = "=ma_formule" 'résultat formule dans cellule
    End Sub
    La longueur max est environ 5000 car.
    Sinon oui, il serait intéressant de voir le début de ta formule (résultat de 2-3 boucles) et que tu expliques ce que tu veux obtenir, elle est peut-être simplifiable avec d'autres fonctions.
    eric

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

Discussions similaires

  1. [Requête SQL]Trop longue pour une ligne
    Par jbulysse dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/07/2008, 15h27
  2. Formule trop longue
    Par fomy dans le forum Excel
    Réponses: 6
    Dernier message: 07/11/2007, 18h41
  3. chaine trop longue pour être indexée
    Par ctobini dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 04/10/2007, 11h36
  4. [Formule] Optimisation (formule trop longue)
    Par Alqualonde dans le forum Excel
    Réponses: 6
    Dernier message: 21/05/2007, 18h08
  5. chaine trop longue pour envoyer en socket?
    Par jeje.r dans le forum C++Builder
    Réponses: 10
    Dernier message: 27/06/2003, 17h36

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