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 :

[Vba-E]Bug dans mon code


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club Avatar de antoinelavigne
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 82
    Points : 33
    Points
    33
    Par défaut [Vba-E]Bug dans mon code
    Bonjour,
    je viens demander un peu d'aide pour la résolution de mes problèmes de coding en Vba pour Excel. Mon code a pour but d'aller chercher certaines données dans un classeur et de les transférer sur un autre classeur, parfois sans calcul, parfois avec (mais ca reste des calculs assez primaires : additions/soustractions).

    Je rencontre seulement 2 problèmes dans mon code, les voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ValSource = Range("B4").Value
    MsgBox ValSource
    Valsource2 = Range("B5")
    MsgBox Valsource2
    valsource3 = ValSource - Valsource2
    MsgBox valsource3
    valsource3 = Format(valsource3, "#0.0")
    MsgBox valsource3
    Workbooks(Var).Worksheets("Synthese").Range("B6").Value = valsource3
    En fait il n'arrive pas à extraire les données de B4 et de B5, et les deux premieres Msgbox m'indiquent '0' toutes les 2. Les deux dernières m'indiquent '0,0'. Je ne comprends pas, je suis sur de mes lignes et de mes cases ; Mauvaise syntaxe ?

    Deuxième probleme : j'utilise [orange]ValSource = Format(ValSource, "#0.00")[/orange], mais j'aimerais également une fonction pour arrondir : par exemple, quand un nombre se termine par ',0', ce dernier disparaitrait.

    Merci d'avance !

  2. #2
    Membre habitué Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Points : 134
    Points
    134
    Par défaut
    juste une question lorsque tu executes ta macro

    Est ce que la feuille où tu "prends" les données est visible / sélectionnée.

    car j'ai testé ton code et je n'ai eu aucun problème.

    Bon courage

  3. #3
    Nouveau membre du Club Avatar de antoinelavigne
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 82
    Points : 33
    Points
    33
    Par défaut
    Oui oui,mais je viens de trouver le problème à ma premiere question.
    Mais par contre pas à la deuxième ! Comment faire ? merci

    - Je voudrais savoir dans un premier temps comment centrer les données que j'écrit dans la feuille cible, car les nombre sont automatiquement centrés sur la gauche ; j'ai déjà fait un enregistrement automatique, avec ma souris (vous savez avec les boutons ronds et carrés) mais cela me sort une dizaine de lignes ce qui n'est pas possible d'implanter dans mon code final ; alors je suis à la recherche d'une fonction qui pourrait le faire !

    - Dernière chose, les classeurs sur lesquels je travaille demande systématiquement confirmation de fermeture à l'utilisateur : comment faire pour l'ignorer ?

  4. #4
    Membre habitué Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Points : 134
    Points
    134
    Par défaut
    tiens j'ai créé une fonction qui permet de de changer la police à savoir (Gras Italique et l'alignement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function Police(N°Cellule As Variant, Alignement As Variant, Gras As Boolean, Italic As Boolean, Style As String)
      N°Cellule.Font.Bold = Gras
      N°Cellule.Font.Italic = Italic
      N°Cellule.HorizontalAlignment = Alignement
      N°Cellule.NumberFormat = Style
    End Function
    Son fonctionnement est simple

    N°Cellule correspond à la cellule ou à la plage de cellule concernée de la forme [A1] ou cells(N°ligne, N°Colonne) ou Range(x,x)

    Alignement correspond comme son nom l'indique à l'alignement a savoir xlcenter, xlright, xlleft

    Gras est un booléen, la cellule est en gras à Vrai

    Italique est aussi un booléen

    Quant à style, il s'agit format du nombre par exemple "0.00" pour avoir un affichage avec 2 chiffres après la virgule.

    si tu as d'autres question n'hésites pas

  5. #5
    Membre habitué Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Points : 134
    Points
    134
    Par défaut
    Pour ce qui est de la fermeture d'un classeur sans la demande de confirmation, il faut que tu ajoutes close.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonClasseur.Close (False)
    bonne continuation et bon courage

  6. #6
    Nouveau membre du Club Avatar de antoinelavigne
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 82
    Points : 33
    Points
    33
    Par défaut
    SAlut,
    effectivement ta fonction va bien m'aider, merci !! Cependant j'aiu nautre problème, le voilà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If Moisencours = juin Then 
    moisavant = mai
    moisencourslettre = I
    moisencourslettre2 = H
    End If 
    
    Valsource = ActiveWorkbook.Worksheets(1).Range("" & moisencourslettre & "34")
    Vous l'aurez deviné je veux obtenir I34. Le script plante sur la ligne en Gras. Comment faire pour qu'elle marche ? Je suis contraint apres plus d'une heure de rélfexion d'utiliser cette syntaxe, et il doit y avoir un moyen. Merci .

  7. #7
    Membre habitué Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Points : 134
    Points
    134
    Par défaut
    je ne fais que passé mais essai en supprimant l'espace que met dans ton range en gros fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Valsource = ActiveWorkbook.Worksheets(1).Range(moisencourslettre & "34")
    ca n'est qu'une rapide idée je repasse tout à l'heure...

    [Edit...]
    peux tu me donner ton message d'erreur

  8. #8
    Nouveau membre du Club Avatar de antoinelavigne
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 82
    Points : 33
    Points
    33
    Par défaut
    Ca ne marche toujours pas ...
    Au cas où j'avais fait ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox "" & moisencourslettre & "34"
    Mais ca n'affiche que '34' et pas de lettre ...

    Mesage d'erreur sinon : Erreur d'éxécution '1004' Erreur definie par l'application ou par l'objet. En débogage il me montre encore et toujours cette premiere ligne. Voilà le début de mon code si ca peut t'aider :

    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
    If Moisencours = juin Then 
    moisavant = mai
    moisencourslettre = I
    moisencourslettre2 = H
    End If 
     
    '______________________________________________________
     
     
    Var = ActiveWorkbook.Name
    Source = "E:\Automatisation V2\V2 réalisé " & moisencours & ".xls"
    Workbooks.Open Source, , True
     
    '----------------------------------------------------------------
    Valsource = ActiveWorkbook.Worksheets(1).Range(moisencourslettre & "34")
    Valsource = Format(Valsource, "#0.0")
    Workbooks(Var).Worksheets("Synthese").Range("B4").Value = Valsource
    ' ---------------------------------------------------------------

  9. #9
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    If Moisencours = juin
    je suppose que juin est une chaîne de caractères, non ?
    Alors ?

  10. #10
    Nouveau membre du Club Avatar de antoinelavigne
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 82
    Points : 33
    Points
    33
    Par défaut
    Effectivement, avec les guillemets ca marche!
    Merci à vous, toujours présent pour donner un coup de main

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

Discussions similaires

  1. bug dans mon code
    Par xixou dans le forum Langage
    Réponses: 20
    Dernier message: 02/11/2012, 15h39
  2. Bug dans mon code source
    Par thomas969 dans le forum Débuter
    Réponses: 4
    Dernier message: 08/05/2009, 17h37
  3. [VBA-E] Excel Pb dans mon code
    Par flagfight dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/05/2006, 12h08
  4. [VBA-E]Probleme dans mon code ??? merci de votre aide
    Par gregantibes dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/04/2006, 18h24
  5. [VBA][Débutant][export]erreurs dans mon code?
    Par Christophe93250 dans le forum Access
    Réponses: 4
    Dernier message: 06/01/2006, 19h52

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