Vba excel: ne plus afficher la condition VRAI à la fin de l'éxécution d'une bouc

drine des iles Messages postés 42 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 26 septembre 2006 - 8 juin 2006 à 21:11
drine des iles Messages postés 42 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 26 septembre 2006 - 12 juin 2006 à 16:11
bonjour,

j'ai programmé une boucle For Next (VBA Excel) qui marche trés bien, mais à chaque fin d'éxécution elle affiche le mot "VRAI" au milieu de mon tableau. Comment faire pour que ma procédure SUB cesse d'inscrire le mot VRAI chaque fois qu'elle a fini de s'écuter ?

drine des iles

10 réponses

cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
8 juin 2006 à 22:46
Salut, j'ai redirigé ta question vers vbfrance.com et le thème "Langages dérivés / VBA", je pense que tu y auras plus de réponses que dans les "Discussions libres"

A++ et Bonne continuation

<hr width="100%" size="2" />Nurgle (Antoine)
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
8 juin 2006 à 23:12
Salut,

là comme ça, je ne peux pas te dire,
peux tu nous mettre le code de ta boucle svp.

Ce sera plus parlant pour te filer un coup de main.
(car je ne vois pas comment tu fais pour que vrai s'affiche dans ton tableau, c'est peut-etre une mauvaise déclaration de variable dans le type [string, boolean etc...])
D'ailleurs, en plus de nous mettre le code de la boucle, met nous également les Dim .. et Public ..

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
9 juin 2006 à 09:05
Salut,

Effectivement du code s'impose...

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
drine des iles Messages postés 42 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 26 septembre 2006
9 juin 2006 à 15:03
bonjour, j'ai suivi votre demande et vous pourrez voir ci-dessous mon code (avec les commentaires, les déclarations...bref tout). Effectivement ça peut venir d'un problème de déclaration ? Qu'en pensez-vous?

Sub compter_pour_insérerligne_situationfrns()
' Macro enregistrée le 15/05/2006 par cc:macro qui compte le nombre de lignes occupées par
'le lot saisi et reporte ce nombre en lignes à insérer dans la feuille situation frns


Dim n As Integer
Dim compteur As Integer


    Range("f25").Select
    Range(Selection, Selection.End(xlDown)).Select
    n = Selection.Rows.Count


For compteur = 1 To n Step 1
'insertion des lignes et des formules dans la feuille situation frns
ActiveCell.Offset(compteur - 1, 0) = _
Windows("Situations fournisseurs.xls").Activate
Range("B21").Select
ActiveCell.Rows("1:1").EntireRow.Select
    Selection.Insert Shift:=xlDown
    ActiveCell.Offset(0, 5).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
    ActiveCell.Offset(0, 2).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
    ActiveCell.Offset(0, -6).Range("A1").Select
Next compteur
End Sub

drine des iles
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
10 juin 2006 à 15:09
Salut,

je t'ai fait 1 modif de rien du tout :

Dim n As Integer
Dim compteur As Integer

Range("f25").Select
Range(Selection, Selection.End(xlDown)).Select
n = Selection.Rows.Count

For compteur = 1 To n 'le step 1 sert à rien, c'est ça par défaut
'insertion des lignes et des formules dans la feuille situation frns
ActiveCell.Offset(compteur - 1, 0) = _
Windows("Situations fournisseurs.xls").Activate
Range("B21").Select
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Insert Shift:=xlDown
ActiveCell.Offset(0, 5).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
ActiveCell.Offset(0, 2).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
ActiveCell.Offset(0, -6).Range("A1").Select
Next compteur


un moment tu as mis :
ActiveCell.Offset(compteur - 1, 0) = _
Windows("Situations fournisseurs.xls").Activate

je pense que l'erreur doit etre la dedans.
Qu'est ce que tu veux faire exactement ?

"Situations fournisseurs.xls" c'est bien un autre classeur ? ou une autre feuille du classeur en cours ?

Si autre classeur : remplace Windows par WorkBooks
Si autre feuille : remplace windows par Sheets
de plus, dans cette syntaxe, tu dis "ActiveCell.Offset(compteur - 1, 0)", après un OffSet(x, y) il faut encore quelque chose, du style .Select

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0
drine des iles Messages postés 42 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 26 septembre 2006
10 juin 2006 à 17:50
quand je met :
ActiveCell.Offset(compteur - 1, 0) = _
Windows("Situations fournisseurs.xls").Activate

je demande à la macro de se rendre dans la fenêtre (qui a préalablement été choisie) du classeur "situations fournisseurs" et de passer à la ligne suivante pour y inclure la série de formules (qui suit dans le code).

j'ai quand même essayé de remplacer windows par workbooks mais là la macro ne fonctionne plus normale car elle ne sait plus dans quelle écran du classeur elle doit se rendre).
_________________________________________________________________
- en outre j'ai effacé step=1. merci du "truc", je ne me souvenais pas que 1 était la valeur par défault.
________________________________________________________________
Malheureusement je reste avec mon VRAI qui s'incrit au milieu du tableau aprés l'éxécution de la macro !

impossible de trouver pourquoi! je ne vois pas ce que la macro remplie comme une condition qu'elle juge VRAI ? et surtout, pourquoi  l'écrit-elle ?

Drine des iles
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
10 juin 2006 à 18:52
Salut,

j'ai testé ta syntaxe et effectivement ça met VRAI dans les cellules.

ActiveCell.Offset(compteur - 1, 0).Value = _
Windows("Situations fournisseurs.xls").Activate

en rajoutant le ".Value" le Vrai a disparu.
Voit si tes formules s'inscrivent bien.

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0
drine des iles Messages postés 42 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 26 septembre 2006
11 juin 2006 à 17:12
bonjour,
j'ai suivi ta démarche, j'ai rajouté  .value.  Malheureusement ça ne change rien, le VRAI s'inscrit toujours (parfois trés loin dans le tableur, c'est peut-être pour ça que tu ne l'as pas vu).
C'est un véritable casse tête chinois ! et je n'ai pas la moindre petite piste d'idée pour le résoudre !
drine des iles
0
cs_bipou Messages postés 61 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 14 septembre 2006
12 juin 2006 à 15:46
Bonjour,

si tu as envie qu'on t'aide, il faut être plus explicite : quels sont les données, que veux-tu faire.

ensuite, sache que de mettre des "select" à tout bout de champ ne sert à rien, rend le code moins compréhensible et ralentie ton code
par exemple au lieu d'écrire :
ActiveCell.Offset(0, 5).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
tu peux juste écrire :
ActiveCell.Offset(0, 5).FormulaR1C1 = "=RC[-2]*RC[-1]"
ce qui permet de ne pas déplacer la cellule active (penser à garder toujours le même repère sinon on se perd!)

enfin, concernant la partie suivante qui reste une incompréhension totale :
ActiveCell.Offset(compteur - 1, 0) = _
sache que la proprité "offset" renvoie un objet "range" dont la propriété par défaut est "value" --> il est normal que dans cette cellule tu trouve une valeur (la suite ...)
Windows("Situations fournisseurs.xls").Activate
si ta fenetre existe, la méthode activate (qui active la fenetre) va réussir, donc la méthode "activate" va renvoyé "VRAI"

donc je vais donc avoir une valeur VRAI DANS une cellule décalée de (compteur-1)lignes par rapport à LA cellule précédemment active de LA fenetre "Situations fournisseurs.xls"

c'est CA que tu veux ????
0
drine des iles Messages postés 42 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 26 septembre 2006
12 juin 2006 à 16:11
la valeur Vraie s'inscrit de façon totalement aléatoire dans une cellule ou une autre sans que j'ai pu y trouver une logique quelconque.
mais il semblerait que j'ai enfin trouvé le moyen pour qu'elle ne s'affiche plus : j'ai vérouiller l'accés au code par un mot de passe et, ne me demandez ni pourquoi ni comment: la valeur Vrai ne s'affiche plus !!!!!!

en résumé:
-si je travaille avec mes fénêtre de code ouverte : la macro affiche VRAI quand elle a fini de s'éxécuter.
-si je travaille avec les fénêtres de codes fermées et vérouillée la macro s'éxécute sans  inscrire VRAI à la fin !!!!!!!!!

merci quand même pour votre aide à tous et , je vais tenir compte du judicieux conseil concernant la propriété select que j'ai tendance à mettre partout (défaut du débutant !).

drine des iles
0
Rejoignez-nous