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 :

Macro pour attribuer des priorités


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
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2016
    Messages : 18
    Par défaut Macro pour attribuer des priorités
    Bonjour,

    Tout d'abord j'utilise la version d'excel 2010.

    Je suis nouveau dans l'univers du code sur VBA et j'ai tenté de créer une macro qui me permettrait de prioriser les lignes d'une base de données en fonction de certaines donnée de cet base.

    Cette base de donnée est extraite du logiciel Business Objecti XI en format excel.

    Je ne peux, pour des raisons de confidentialités vous transmettre cette base de donnée. Cependant j'ai fait un copier coller de 6 lignes et j'ai supprimé la plupart des infos dont on n'avait pas besoin. Seul les infos nécessaires sont présentes.

    Quand j'exécutais la macro prio sur mon fichier d'origine j'avais un problème d'incompatibilité 13 quand j'arrivais sur la ligne PPm = Cells (i, 26)

    Et il s'avère que quand j'ai fait mon petit fichier avec mes 6 lignes copier coller sur un autre excel la j'avais plus ce problème car rien ne se passe.

    Je vous joint mon fichier en pièce jointe. Des idées ?

    En vous remerciant d'avance si vous prenez le temps de m'aider .
    Fichiers attachés Fichiers attachés

  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,

    Comme je n'ouvre pas les fichiers avec macros, je vais y aller de supposition.
    Ta variable PPm est possiblement déclarée comme un numérique (Long, Double,...) et ta cellule est possiblement en texte.
    Si c'est le cas, il te faut changer le format (casting)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PPm = CLng(Cells (i, 26)) 'si c'est un Long
    PPm = CDbl(Cells (i, 26)) 'si c'est un Double

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Ton code se débranche tout de suite, parce que la condition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Do While Cells(i, 1).Value <> ""
    nest pas remplie. Sinon, l'erreur est certainement due à une cellule non numérique.

    Remplace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PPm = Cells(i, 26) 'Nbr de ppm
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        If IsNumeric(Cells(i, 26)) Then
            PPm = Cells(i, 26) 'Nbr de ppm
        Else
            MsgBox "la cellule " & Cells(i, 26).Address & " n'est pas numérique"
        End If

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2016
    Messages : 18
    Par défaut
    Bonjour,

    Tout d'abord merci pour vos réponses !

    Je viens d'essayer ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If IsNumeric(Cells(i, 26)) Then
            PPm = Cells(i, 26) 'Nbr de ppm
        Else
            MsgBox "la cellule " & Cells(i, 26).Address & " n'est pas numérique"
        End If
    Et effectivement il me met que la cellule est non numérique. Une idée de comment la rendre numérique ?

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Si tu as, par exemple, "toto" dans la cellule, il n'y a que toi qui sache ce qu'il faille faire. Peut-être mettre "0" ?

  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
    La rendre numérique n'est pas nécessairement important... tout dépend de l'utilisation que tu veux en faire.
    Le casting avec CLng, CDbl, Csng,...(voir l'aide) peut servir quand tu transfères ces nombres dans des variables.
    Si tu veux vraiment changer les chiffres en numériques, crée une boucle qui passe toutes tes cellules et multiplie les numérique par 1 avec la même méthode: If IsNumeric()

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2016
    Messages : 18
    Par défaut
    D'accord.

    Pour être plus clair, je récupère un fichier excel avec la colonne U :

    Nom : Capture.PNG
Affichages : 221
Taille : 8,9 Ko

    Et mois je veux récupérer le 0.42 par exemple de la première ligne donc la je fais un gauche(U2;4) pour avoir la colonne Z. Et cette colonne Z me sert pour la macro car j'ai besoin du 0.42 pour le comparer pour pouvoir prioriser mes lignes.

  8. #8
    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
    Si ton séparateur de décimale normal est la virgule, il te faut changer les points par des virgules.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Columns("U").Replace(".", ",")
    Il faudra voir si ton format de cellule est Texte ou Standard ...mais normalement tu devrais te retrouver avec des chiffres

Discussions similaires

  1. [Formule]Macro pour masquer des formules dans une cellule
    Par Hellx dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2007, 08h21
  2. Réponses: 1
    Dernier message: 15/09/2006, 16h23
  3. [VBA-PP] macro pour insérer des images dans PowerPoint
    Par mashpro dans le forum VBA PowerPoint
    Réponses: 4
    Dernier message: 01/08/2006, 22h56
  4. [VBA-E] Probleme Macro pour gérer des cases à cocher
    Par bibiche2184 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/06/2006, 18h03
  5. macro pour créer des graphiques
    Par Sebastien_INR59 dans le forum Access
    Réponses: 1
    Dernier message: 07/06/2006, 09h44

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