VB6 Macro sous Excel à la fin de mes lignes Inscrit un Texte
cs_JeffC1977
Messages postés928Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention23 septembre 2023
-
25 mai 2006 à 14:59
hossam20004
Messages postés1Date d'inscriptionlundi 4 juillet 2005StatutMembreDernière intervention26 mai 2006
-
26 mai 2006 à 17:08
Salut... J'ai un petit problème avec une commande qui m'a été suggérée....
Voici le problème...
Quand je fais mon Macro.... j'ai 10 lignes à modifier (par exemple). Mais il se peut que j'aille plus que 10 lignes à modifier. Donc, je fais comme si j'avais 100 lignes à modifier....
Mon Macro sera utilisé pour faire la conversion de Coordonnées géographique et l'utilisateur peut faire la conversiton de 1 à 100 coordonnées.
Le bug c'est qu'avec cette commande qui m'a été suggéré:
ActiveSheet.Cells( Range("A1").End(xlDown).Row+1, 1).Value="&PMGNCMD.END*3D"
Ca va écrire à la ligne 101 mais je dois avoir ce texte à la première ligne vide. En d'autres mots, si j'ai 10 lignes alors à la ligne 11 (Colonne A) j'ai le texte écrit "="&PMGNCMD.END*3D" ". Si j'ai 42 lignes alors à la lignes 43 (Colonne A) j'ai le texte "="&PMGNCMD.END*3D" " d'écrit
Si quelqu'un peut m'aider...
merci d'avance
A voir également:
VB6 Macro sous Excel à la fin de mes lignes Inscrit un Texte
fiko81
Messages postés381Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention 5 septembre 20103 25 mai 2006 à 15:37
Salut,
Je n'ai pas tout compris mais j'ai l'impression que c'est le fait de ne pas savoir à l'avance le nombre de ligne.
As-tu essayé la fonction equiv qui peut éventuellement te renvoyer la dernière ligne remplie... ?
Fiko ;-)
Proverbe chinois : Connaître son ignorance est la meilleur part de la connaissance./FONT>
cs_JeffC1977
Messages postés928Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention23 septembre 20234 25 mai 2006 à 15:58
Je crois que tu as saisi l'essentiel... héhéhéhéh
Ok je ne m'y connais pas dutout dans VBA c'est la premiere fois que j'essais de jouer avec ca....
La fonction EQUIV....:
Je viens de regarder ca et on dirait que c'est du numérique cette fonction... (elle utilise du numérique)
Moi quand j'arrive à la fin de mon Macro mes valeurs qui se trouve uniquement dans ma Colonne A sont du Texte....
Si je peux utiliser cette fonction.. Comme je fais....
Bref je ne saisi pas trop cette fonction....
Peux-tu me donner un exemple pour que je puisse vraiment voir comment s'écrit le code en VBA...
fiko81
Messages postés381Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention 5 septembre 20103 25 mai 2006 à 20:52
En fait, l'idée est de mettre dans une cellule dans ta feuille un formule qui va chercher la première cellule vide de ta colonne :
Voici un exemple : ouvre un nouveau classeur et mets dans la colonne A les valeurs suivantes :
<colgroup><col style= \"WIDTH: 60pt\" width=\"80\" /></colgroup>----
efzf, ----
gerge, ----
erg, ----
gdfs, ----
gdfg, ----
dfg, ----
dfg, ----
dfg, ----
gd, ----
fsg, ----
dg
Ensuite dans une autre cellule, tu mets cette formule : =EQUIV( "" ;A:A;-1) ----> ça donne 11 magique !
Traduction : EQUIV(Le texte que tu recherche à savoir rien ; la colonne ds laquelle tu cherches ; une option de recherche).
Inconvéniant de cette méthode : ton fichier excel source doit avoir cette formule initialement (tu peux éventuellement la coder en dynamique)...
Pour finir, tu mets dans ta macro une boucle sur la valeur de cette cellule du genre for i = 1 to 'la cellule' et tu codes ce que tu veux dedans.
Voilà. J'espère que c'est comprensible. Si ça ne te convient pas, il y a d'autres solutions.
Fiko ;-)
Proverbe chinois : Connaître son ignorance est la meilleur part de la connaissance./FONT>
cs_JeffC1977
Messages postés928Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention23 septembre 20234 25 mai 2006 à 21:47
Rebonjour....
Et bien ton explicatione st assez clair...
Je n'ai que 2 questions...
1. Pourquoi ca donne 11.
Je saisi qu'il y a 11 lignes dans le fichier, mais je ne saisi pas pourquoi le "-1" dans la formule donne 11. J'aurais vu un NB pour compter le nombre de cellule ayant des chiffres mais dans la formule il y a un "-1" ?????
2. Je suis déçu de te demander cela... mais c'est quoi coder en dynamique.
J'attends de tes nouvelles....
P.S. ta méthode semble très intéressante....
Vous n’avez pas trouvé la réponse que vous recherchez ?
fiko81
Messages postés381Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention 5 septembre 20103 25 mai 2006 à 22:35
Salut,
Alors pour l'histoire du 11 : la fonction EQUIV permet de faire plusieurs choses. Voici l'aide Excel pour l'explication du dernier argument :
<li>Si la valeur de l'argument type est 1, la fonction EQUIV trouve la valeur la plus élevée qui est inférieure ou égale à celle de l'argument valeur_cherchée. Les valeurs de l'argument matrice_recherche doivent être placées en ordre croissant : ...-2, -1, 0, 1, 2, ..., A-Z, FAUX, VRAI.
</li><li>Si la valeur de l'argument type est 0, la fonction EQUIV trouve la première valeur exactement équivalente à celle de l'argument valeur_cherchée. Les valeurs de l'argument matrice_recherche peuvent être placées dans un ordre quelconque.
</li><li>Si la valeur de l'argument type est -1, la fonction EQUIV trouve la plus petite valeur qui est supérieure ou égale à celle de l'argument valeur_cherchée. Les valeurs de l'argument matrice_recherche doivent être placées en ordre décroissant : VRAI, FAUX, Z-A, ..., 2, 1, 0, -1, -2, ..., et ainsi de suite.
</li><li>Si l'argument type est omis, la valeur par défaut est 1.
</li>Elle permet comme tu peux le voir de faire des recherches sur des valeurs numériques. Pour ton exemple, tu veux trouver la première cellule vide : "la fonction EQUIV trouve la plus petite valeur qui est supérieure ou égale à celle de l'argument valeur_cherchée" : l'astuce est de mettre un champs vide pour valeur_cherchée.
En ce qui concerne le "mais c'est quoi coder en dynamique" :
Pendant l'exécution de ta macro, tu peux coder une ligne qui se chargera d'écrire la fonction dans une cellule. Un truc du genre :
ActiveCell.FormulaR1C1 = "=MATCH(0,C[-2],0)"
Voilà.
Fiko ;-)
Proverbe chinois : Connaître son ignorance est la meilleur part de la connaissance./FONT>
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20223 25 mai 2006 à 23:23
Salut,
Normalement cette fonction te renvoie la première ligne vide et écris dedans
ActiveSheet.Cells( Range("A1").End(xlDown).Row + 1, 1).Value="&PMGNCMD.END*3D"
Si tu as encore des probs décomposes de cette manière
Dim LastRow As Long
With ActiveSheet.UsedRange
LastRow = .Range("A1").End(xlDown).Row + 1
.range("A" & lastrow).Value = "&PMGNCMD.END*3D"
' Si c'est une formule utilises .Formula au lieu de .Value
End With
cs_JeffC1977
Messages postés928Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention23 septembre 20234 26 mai 2006 à 13:13
Salut à vous deux....
Salut Fiko81..
Et bien j'avais lu l'aide dans excel et ce n'est toujours pas tres clair pour moi cette formule...
Je comprend une partie mais il y a certain élément qui m'échape...
Comment lui dire qu'à la première ligne vide inscrit un texte spécial et ensuite fait rien
Pour le "Ensuite fait rien" Ca va c'est une boucle, mais le code avant m'échappe toujours...
218510 valtrase J'ai essayé ton code dans mon Macro et ca fait touours la même chose... Le texte s'inscrit à la ligne 201 et dans mon Macro, dans l'exeplme que j'utilise, je n'ai que 10 lignes et donc il devrait s'inscriure à la ligne 11
****************************************************************
Peut-être que j'oublie de vous spécifier quelque chose alors voila...
J'ai un fichier texte sur mon c:\ qui se nomme GPS.txt et dans ce fichier j'ai ces informations
Voilà le code de mon Macro.
P.S. les ligne sen gras sont les ligne que je veux modifier. Pour le moment j'inscris le texte dans une cellule où l'utilisateur fera un couper/coller à la dernière ligne.
hossam20004
Messages postés1Date d'inscriptionlundi 4 juillet 2005StatutMembreDernière intervention26 mai 2006 26 mai 2006 à 17:08
bonjour ,
je suis entrin de créer une application de bon de commande ,et mnt je veux savoir cooment je vai creer un compte des utilisateur avec les droit d'acces