Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1000 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro excel : le nom de variable apparaît dans la formule excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Macro excel : le nom de variable apparaît dans la formule excel

n°2173593
Elee
Posté le 31-01-2013 à 18:31:10  profilanswer
 

Bonjour à tous,
 
je débute en language VBA et après plusieurs jours passés à me prendre la tête sur une macro je bloque sur l'intégration de ma formule NB.SI.... :(  
 
Voici la partie du code qui semble poser problème :
 
ligne = Range("A1048576" ).End(xlUp).Row
Dim plage As Range
Set plage = Range(Cells(2, 29), Cells(ligne, 29))
 
ActiveCell.FormulaR1C1 = "=COUNTIF(plage,""OK : obj T4 réalisé"" )"
 
En fait je n'ai pas de message d'erreur dans VBA mais par contre quand je retourne sur ma feuille de calcul, il y a écrit #NOM? dans la case en question et lorsque je regarde dans la barre de formule excel j'ai ça :
=NB.SI(plage;"OK : obj T4 réalisé" )
 
Le nom "plage" (nom de ma variable donc) ne devrait pas apparaître !
D'autant plus que lorsque je suis dans VBA et que j'approche la souris, la valeur de la variable ligne est la bonne ainsi que la valeur des cellules de la plage....
 
Je bloque et j'ai beau chercher sur internet je ne dois pas taper les bons termes de recherche car je trouve des trucs qui n'ont rien à voir avec mon problème....
 
Si vous avez une petite idée, je suis preneuse parce que là je craqueeeeeeeee  :pt1cable:


Message édité par Elee le 31-01-2013 à 18:31:50
mood
Publicité
Posté le 31-01-2013 à 18:31:10  profilanswer
 

n°2173596
boomy29
PSN: tintine29
Posté le 31-01-2013 à 19:24:33  profilanswer
 

Ton code il est pas très propre  
pour moi ta plage ça ne peut pas marcher  
 
je comprends que tu veux compter les OK : obj T4 réalisé de la colonne AC
 
ligne = Range("A1048576" ).End(xlUp).Row
ActiveCell.Formula = "=COUNTIF(AC2:AC" & ligne & ",""OK : obj T4 réalisé"" )"


Message édité par boomy29 le 31-01-2013 à 19:25:21

---------------
[Ach] Just dance + cam PS4
n°2173675
Elee
Posté le 01-02-2013 à 10:27:52  profilanswer
 

Super !!! Ça fonctionne !
Je me doute que mon code n'est pas terrible, au boulot ils m'ont accordé 3 jours de formation sur VBA et 2 jours ont consisté à recopier bêtement des lignes sans avoir de réponses à nos questions...du coup je "bidouille" plus qu'autre chose.
 
En tout cas merci beaucoup pour ton aide.
Je ne suis pas certaine de comprendre pourquoi ça fonctionne...
Quelle est la différence entre : ActiveCell.Formula et ActiveCell.FormulaR1C1 ?
Pourquoi est-ce que je ne peux pas mettre la variable plage alors que la variable semblait bonne ?


Message édité par Elee le 01-02-2013 à 10:30:56
n°2173702
boomy29
PSN: tintine29
Posté le 01-02-2013 à 10:54:56  profilanswer
 

je vais essayer d'être clair dans mes explications  
 
avec Formula c'est pas interprété donc on peut lui passer le texte en brute comme j'ai fait  
avec FormulaR1C1 (notation RowNoLigneColumnNoColonne ) il faut connaitre la cellule active déjà et ensuite l’écriture n'est pas très simple  
 
pour ton exemple si la cellule active c'est A1 alors ça donnerai un truc  
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[29]:R[Ligne]C[29],""OK : obj T4 réalisé"" )"  
 
en gros ma plage commence sur la même ligne et sur 29 colonne vers la droite et fini a la ligne de la variable et colonne 29  
 
et je suis pas sur que ça marche mon truc ;)
 
ton range marche mais je vois pas comment l'utilisé directement là  


---------------
[Ach] Just dance + cam PS4
n°2173713
Elee
Posté le 01-02-2013 à 11:01:13  profilanswer
 

Ok, je retiens et je vais voir si du coup je peux pas essayer de simplifier à d'autres endroits ou l'enregistreur m'a mis aussi R1C1.
 
Merci encore :-)

n°2173718
boomy29
PSN: tintine29
Posté le 01-02-2013 à 11:07:28  profilanswer
 

l'enregisteur est sympa pour te donner une idée  
mais après il faut revoir pour gagner en performance  
 
mais après si tu colles le code de l’enregistreur sur le forum pas mal de monde pourra t'aider et ça donne une bonne base de travail


---------------
[Ach] Just dance + cam PS4
n°2173777
Marc L
Posté le 01-02-2013 à 14:58:37  profilanswer
 

 
              Pour résumer, tout ce qui est entre guillemets n'est pas une variable ‼

n°2173793
Elee
Posté le 01-02-2013 à 16:01:46  profilanswer
 

Marc L a écrit :

 
              Pour résumer, tout ce qui est entre guillemets n'est pas une variable ‼


 
Oui, oui, ça j'avais bien retenu. Je n'avais pas mis de guillemets autour de ma variable plage....


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro excel : le nom de variable apparaît dans la formule excel

 

Sujets relatifs
MACRO EXCELExport Feuille Excel en valeur avec cellule fusionnées
Création d'une action en VBA Excel - Besoin d'aideMacro Word 2010 / Autoexec replace
macro copier collerAide pour Macro Excel
Générateur de chiffres à la suite d'une formule 
Plus de sujets relatifs à : Macro excel : le nom de variable apparaît dans la formule excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR