Vba excel: ne plus afficher la condition VRAI à la fin de l'éxécution d'une bouc
drine des iles
Messages postés42Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention26 septembre 2006
-
8 juin 2006 à 21:11
drine des iles
Messages postés42Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention26 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
A voir également:
Vba excel: ne plus afficher la condition VRAI à la fin de l'éxécution d'une bouc
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 20114 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"
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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 !
drine des iles
Messages postés42Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention26 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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 !
drine des iles
Messages postés42Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention26 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
Messages postés42Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention26 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
cs_bipou
Messages postés61Date d'inscriptionmercredi 14 janvier 2004StatutMembreDernière intervention14 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"
drine des iles
Messages postés42Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention26 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 !).