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 :

Format de Cellule non reconnu [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 26
    Par défaut Format de Cellule non reconnu
    Bonjour le forum ,

    Ce post fait suit à mon problème évoqué ici : http://www.developpez.net/forums/d15...ecution-sumif/.

    J'ai donc assimilé le fait que la fonction SumIf ne pouvait fonctionner qu'avec des formats de cellule cohérents. J'ai mis en place le fichier test suivant :

    Le fichier .xlsm avec l'exemple : exempleforum.xlsm

    Même en plaçant ce bout de code pour avoir un format de cellule cohérent, ça ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Range(Cells(27, 1), Cells(33, 1))
        .NumberFormat = "General"
    End With
    Ca fonctionne si je vais manuellement sélectionner la cellule, si je simule une modification de la valeur et ressort de la cellule. (La valeur se décalle alors à droite de la cellule).

    Avez-vous une piste? Je bloque une nouvelle fois pour reforger mon code de manière plus simple .

    BlackMountain

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Où est-ce que tu as mis ce bout de code ? dans quel événement ou macro ?
    Si tu l'as mis dans Worksheet_Change, c'est normal que l'action se passe lorsque tu édites la cellule...

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 26
    Par défaut
    Bonjour,

    Le Code est placé dans le fichier que j'ai appelé exempleforum.xlsm. Je le replace dans ce message :
    exempleforum.xlsm

    Il est visible dans l'arborescence de VBA dans VBAProject / Modules / SumIf.
    Si la macro est lancée, débuggage, la variable "NeFonctionnePas2" garde la valeur 0.

    Qu'est-ce que le WorkSheet_Change?

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Je n'ouvre pas les fichiers avec macro... désolé...

    Worksheet_Change est un événement de la feuille qui est appelé quand on modifie la valeur d'une cellule.
    On retrouve cet événement dans le code des feuilles ou encore dans la section ThisWorkbook (avec un nom quelque peu différent)

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 26
    Par défaut
    Si tu n'ouvres pas les fichiers avec macro c'est dû à une potentielle présence de fichiers malveillants?

    Rien n'a été mis dans la section ThiWokBook, qui est bien présente dans "Microsoft Excel Objects" qui est au même niveau hierarchique que "Modules".

    Du coup, comment te présenter un fichier sur lequel travailler et résoudre le problème? Est-ce que ça fonctionnerai avec un fichier .xls?

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    xls ou xlsm sont de même nature.
    On n'a pas idée de ce qu'on peut faire avec des macros...

    J'ai déjà fait un petit fichier bidon pour les collègues du bureau avec un message de destruction de leurs fichiers dès l'ouverture et un autre message expliquant la blague, bien sûr...
    J'ai entendu les rires un peu partout sur l'étage
    Quand je serai à la maison, on verra...

    Si tu exposais clairement ce qui va et ne va pas ?
    Ce que je crois comprendre, c'est que tes données ne sont pas des nombres mais du texte.
    D'une part d'où proviennent ces chiffres en texte ? on pourrait peut-être régler le problème à la source
    Sinon, un boucle de ta zone et, après avoir changé le format des cellules, faire un Cells(i,j) = Cells(i,j) * 1 ou Cells(i,j) = CDbl(Cells(i,j)

  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    A TESTER
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub essai()
    Dim Tb, Dcel As Range
    With Sheets("Feuil1") 'à remplacer par le vrai nom
      Set Dcel = .Range("A" & .Rows.Count).End(xlUp) 'voir pour la bonne colonne
      Tb = Range("A2", Dcel) 'idem que ci-dessus
      .Range("A2", Dcel).Clear
      .Range("A2", Dcel).NumberFormat = "general"
      .Range("A2").Resize(UBound(Tb, 1), 1) = Tb
    End With
    End Sub
    Et si ça ne suffit pas, on transite par un deuxième tableau
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

Discussions similaires

  1. Format de base non reconnue
    Par Anduriel dans le forum Accès aux données
    Réponses: 1
    Dernier message: 05/10/2010, 18h58
  2. [AC-2010] Problème de format de bbd non reconnu.
    Par Mat08 dans le forum IHM
    Réponses: 6
    Dernier message: 13/08/2010, 22h44
  3. format de bd non reconnu
    Par nezhaaem dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/07/2010, 07h33
  4. Format de données non reconnu
    Par lecaire dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/02/2010, 11h47
  5. [AC-2003] Format de bdd non reconnu
    Par dryland08 dans le forum Access
    Réponses: 7
    Dernier message: 09/04/2009, 09h46

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