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 :

impossible d'affecter une valeur a une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Par défaut impossible d'affecter une valeur a une cellule
    Bonjour,

    C'est à n'y rien comprendre :
    Le classeur Excel utilisé permet de charger une macro. L'exécution de cette macro permet de modifier des valeurs dans le classeur.
    Les champs suivants, exécutés par la macro, me permettent de sélectionner le workbook, la feuille de travail et la cellule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WbName = "toto.xls"
    WsName = "feuil1"
    Workbooks(WbName).Worksheet(WsName).Cells(5, 5).Value = "TOTO"
    Lorsque je lance la macro, j'obtiens l'erreur suivante #VALEUR, et lorsque j'y vais en pas à pas je remarque que la valeur lue dans la cellule (5, 5) est correcte avant l'exécution de l'affectation précédente ("TOTO").
    Le debugger plante sur la ligne d'affectation comme si il avait fini d'exécuter la macro...

    Y'a-t-il quelque chose qui est mal fait ou manquant

    Merci d'vôt'aide

  2. #2
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    bonjour

    à essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(WbName).Worksheets(WsName).Cells(5, 5).Value = "TOTO"

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Par défaut
    oups j'ai fait une faute de frappe en écrivant le post... mais le problème est toujours présent

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Par défaut
    Les commandes suivantes ne font rien de mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ' Sélection du workbook
    Workbooks(WbName).Activate
    ' Sélection du worksheet
    Worksheets("feuil1").Activate
    Cells(5, 5).Locked = False
    Cells(5, 5).Value = 35
    mais pourquoiiiiiii ?

  5. #5
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    ta feuille est elle protégée ???, je vois que tu utilises locked
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    with workbook(wbname).sheets(wsname)
             .unprotect
             .cells(5,5) = 25
    end with(
    s'il y as un mot de passe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    with workbook(wbname).sheets(wsname)
             .unprotect password:="MonMotDePasse"
             .cells(5,5) = 25
    end with(
    mais je ne vois pas plus
    il faudrait que tu mettes ta macro au complet

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Par défaut
    aux grands maux les grands moyens

    Voici ce que j'ai mis dans mon classeur :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        'Cache la barre d'outils
        Application.CommandBars("barre_calcul").Visible = False
        'efface la barre d'outils
        Application.CommandBars("barre_calcul").Delete
        'Retire la macro précédemment installée
        AddIns.Add("T:\Calcul Bandeau\TransformeBandeau.xla", False).Installed = False
     
    End Sub
     
    Private Sub Workbook_Open()
       Dim CBar As CommandBar, CBarCtl As CommandBarControl
     
        'Charge les macro complémentaires
        AddIns.Add("T:\Calcul Bandeau\TransformeBandeau.xla", False).Installed = True
     
      ' Créer une nouvelle barre d'outils visible.
       Set CBar = Application.CommandBars.Add(Name:="barre_calcul_bandeau", Position:=msoBarTop)
       CBar.Visible = True
     
       ' Créer un bouton avec du texte sur la barre et définir certaines propriétés.
       Set CBarCtl = CBar.Controls.Add(Type:=msoControlButton)
       With CBarCtl
          .Caption = "Calcul du bandeau"
          .Style = msoButtonCaption
          .TooltipText = "Dépile les informations définies dans l'onglet 'Relevé Video'"
          .OnAction = "'" & "TransformeBandeau.xla" & "'!" & calc_bandeau
        End With
    End Sub
    Voici ce que j'ai mis dans ma macro intitulée TransformeBandeau.xla, au sein d'un module appelé module1 :
    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
    Function calc_bandeau()
    Dim i As Integer
    Dim Ligne As Integer
    Dim FinLigne As Integer
    Dim WbName, WsName As String
     
    WsName = ActiveSheet.Name
    WbName = ActiveSheet.Parent.Name
     
    ' Sélection du workbook
    Workbooks(WbName).Activate
    ' Sélection de la feuille active
    Worksheets("Relevé Video").Activate
    Cells(5, 5).Locked = False
    Cells(5, 5).Value = 35
    End Function
    Pour être plus précis, le débuggeur n'est pas totalement planté, sur l'exécution de la ligne d'affectation à 35 :
    Dans le cas ou l'on avance en pas à pas, l'exécution de la ligne d'affectation ne fait rien, mais un pas de plus permet de recommencer la macro au début et après toutes les affectations se passent comme il faut
    Dans le cas ou l'on effectue tout le programme d'un seul coup alors il ne se passe rien, aucun calcul n'est affiché

Discussions similaires

  1. [XL-2003] Recopier une ligne selon une valeur d'une cellule donnée.
    Par bokgkik dans le forum Excel
    Réponses: 2
    Dernier message: 07/12/2011, 19h00
  2. affecter les valeur d'une classe a une autre
    Par gomez-green dans le forum VB.NET
    Réponses: 2
    Dernier message: 07/06/2010, 16h10
  3. Pb copier une valeur d'une textbox vers une cellule
    Par whykiki dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/12/2007, 11h49
  4. Sélectionner seulement une partie d'une valeur d'une cellule
    Par ArthurO0O dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/08/2007, 11h05
  5. affecter la valeur d'une requete dans une variable (VB6)
    Par josémaria dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 02/03/2007, 14h19

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