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 :

1004 error, code arrete sans raison suite à l'écriture d'une formule dans une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2019
    Messages : 11
    Par défaut 1004 error, code arrete sans raison suite à l'écriture d'une formule dans une cellule
    Bonjour à tous,

    J'ai fait un code afin de dupliquer une feuille et de l'utiliser avec les données de chaque nouveau bassin que j'ajoute dans ma première feuille. Mon code fonctionne bien (peut-être pas optimal, mais bon), mais depuis que j'ai ajouté la dernière ligne pour écrire une longue formule, ça me donne une erreur 1004. La formule s'écrit comme il faut dans la feuille, mais le code ne renomme plus la feuille comme voulu.

    https://www.cjoint.com/c/JCEbLkVtbWO

    Est-ce que quelqu'un pourrait me donner un coup de main? C'est depuis que j'ai modifié la formule pour une beaucoup plus longue que ça a fait ce bug.

    Merci d'avance pour le coup de main

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Bieffe Voir le message
    Bonjour,

    On ne voit pas d'où vous partez dans l'onglet Données, la ligne de code pour nommer l'onglet est neutralisée.

    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
     
    Dim ShTemplate As Worksheet
     
        'Creation de la nouvelle feuille
        Sheets("Template_BV").Copy After:=Sheets(Sheets.Count)
        Set ShTemplate = Sheets(Sheets.Count)
     
        'Modification des donnees de la feuille pour ajuster au BV selectionne
        With ShTemplate
             .Range("A1").Formula = Adresse_Titre
             .Range("F10").Formula = Adresse_Superficie
             .Range("F11").FormulaLocal = "=SI(OU(F12=2;F12=5;F12=10);" & Adresse_10 & ";SI(F12=25;" & Adresse_25 & ";SI(F12=50;" & Adresse_50 & ";SI(F12=100;" & Adresse_100 & "))))"
     
             'Renommer la feuille avec les 12 premiers caracteres (a modifier si besoin)
            ' .Name = Left$(.Range("A1").Value, 12)
        End With
        Set ShTemplate =  Nothing

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2019
    Messages : 11
    Par défaut
    Bonjour,

    Merci pour le retour rapide! Je ne connaissais pas l'option Template, je vais étudier ça.

    La cellule d'où je pars dans les données est celle sélectionnée (le titre de la surfaces, par exemple A13), ça fait partie du guide d'utilisation de ma feuille qui n'est pas inclus.

    Pour ce qui est de la solution proposée, j'ai toujours la même erreur avec votre proposition. Pourtant, la formule s'écrit comme il faut, c'est ça qui me confond le plus.

    Nom : Capture.PNG
Affichages : 162
Taille : 64,6 Ko

    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Bieffe Voir le message
    Je n'ai pas de problème avec ce code :

    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
    Dim ShTemplate As Worksheet
     
    'Creation de la nouvelle feuille
     
        Sheets("Template_BV").Copy After:=Sheets(Sheets.Count)
        Set ShTemplate = Sheets(Sheets.Count)
     
       With ShTemplate
     
    'Modification des donnees de la feuille pour ajuster au BV selectionne
        .Range("A1").Formula = Adresse_Titre
        .Range("F10").Formula = Adresse_Superficie
        .Range("F11").FormulaLocal = "=SI(OU(F12=2;F12=5;F12=10);" & Adresse_10 & ";SI(F12=25;" & Adresse_25 & ";SI(F12=50;" & Adresse_50 & ";SI(F12=100;" & Adresse_100 & "))))"
     
    'Renommer la feuille avec les 12 premiers caracteres (a modifier si besoin)
        .Name = Left$(.Range("A1").Value, 12) & " " & Sheets.Count
     
     
        End With
        Set ShTemplate = Nothing

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2019
    Messages : 11
    Par défaut
    Merci, je n'avais pas remarqué le Local. Afin d'être sûr d'avoir bien compris, il fallait le Local afin que le code s'adapte à mon logiciel en français, sinon il ne reconnaissait pas ma formule comme une formule puisque les termes étaient en français?

    Merci encore, j'avais déjà passé pas mal de temps à chercher ma solution, mais je n'avais pas pensé à cela. Les autres fonctions de mon code ne mettaient jamais une formule complète mais plutôt des références à des cellules ce qui n'était pas problématique car dans aucune "langue".

Discussions similaires

  1. [XL-MAC 2011] Lien d'emplacement sans intéragir avec le contenu d'une cellule
    Par Dgerard83 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/10/2015, 09h13
  2. Réponses: 6
    Dernier message: 05/08/2013, 21h57
  3. Réponses: 3
    Dernier message: 18/06/2008, 10h38

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