Impossible de "passer" ma variable Toto a l'autre macro, et je ne trouve
pas. Je dois declarer quelquechose? ou? Si je pointe sur la variable
toto est a l'air d'avoir la bonne valeur.
Merci beaucoup.
Uncas
pour info les deux subs sont ci dessous:
-------------------------------------------------------
Sub boucle_en_ligne()
Dim code_ISIC, clef As String
code_ISIC = "FR0004254035"
Dim ligne As Integer
Sheets(2).Select
For ligne = 3 To 100
clef = Cells(ligne, 1).Value & "-" & code_ISIC
clef = "cat"
Call write_value(clef)
Next
End Sub
--------------------------------------------------------
Public Sub write_value(key As String)
Sheets(1).Select
Cells.Find(what:=key).Offset(0, 3).Select
tempo = Selection.Value
Sheets(2).Cells(2, 2).Value = tempo
Pourquoi ne pas déclarer ta variable toto en variable Public en mettant en tout début cette ligne :
Public toto
La valeur toto récupéré en 1° macro (toto = Cells(ligne, 1).Value & "-" & code_ISIC )
sera reconduite dans la 2° macro sans utiliser la ligne : Call write_value (Toto)
directement utilisable comme par exemple MsgBox(toto)
Seul impératif éxécuter la 1° macro avant d'éxécuter la 2° en mettant en fin de 1° Macro la commande :
Run("2° Macro")
Celà devrait faire
Dis moi !!!!
Uncas Cooper
Bonjour MichDenis,
pardon j'ai fait un coper coller un peu rapide. Je n'active qu'une des deux lignes, l'autre je la mets en commentaire. quand j'attribue "cat" a clef ça marche tout seul mais pas dans l'autre cas.
Merci pour la proposition je vais voir si je m'en sors
Que veux-tu attribuer comme valeur à Clef ? Tu as droit à une valeur à la fois !
Dans cette procédure, Public Sub write_value(key As String), tu utilises la méthode "Find". Cette dernière renvoie une erreur de type 91 lorssqu'elle ne trouve pas donc tu dois utiliser avant ceci : On error resume next
Voici une façon de réécrire tes macros :
'---------------------------- Sub boucle_en_ligne()
Dim ligne As Integer Dim code_ISIC As String, clef As String code_ISIC = "FR0004254035"
With Sheets(2) 'Préférable d'inscrire son nom For ligne = 3 To 100 clef = .Cells(ligne, 1).Value & "-" & code_ISIC clef = "cat" ' à toi de déterminer où les données doivent être copiées. .Cells(2, ligne) = Trouve_value(clef) Next End With End Sub '----------------------------
'---------------------------- Public Function Trouve_value(key As String) On Error Resume Next With Sheets("NomFeuille") 'nom feuille à déterminer Trouve_value = .Cells.Find(what:=key).Offset(0, 3) End With End Function '----------------------------
"Uncas Cooper" a écrit dans le message de news: % Bonjour a tous,
Par avance merci de votre aide.
Voici la situation: j'ai une macro Write_value()
j'ai une deuxieme macro boucle()
dans cette macro boucle si je fais: Call write_value("Toto")
Impossible de "passer" ma variable Toto a l'autre macro, et je ne trouve pas. Je dois declarer quelquechose? ou? Si je pointe sur la variable toto est a l'air d'avoir la bonne valeur.
Merci beaucoup.
Uncas
pour info les deux subs sont ci dessous: ------------------------------------------------------- Sub boucle_en_ligne()
Dim code_ISIC, clef As String code_ISIC = "FR0004254035"
Dim ligne As Integer
Sheets(2).Select
For ligne = 3 To 100 clef = Cells(ligne, 1).Value & "-" & code_ISIC clef = "cat" Call write_value(clef)
Next
End Sub
-------------------------------------------------------- Public Sub write_value(key As String)
Sheets(1).Select Cells.Find(what:=key).Offset(0, 3).Select tempo = Selection.Value Sheets(2).Cells(2, 2).Value = tempo
End Sub
Bonjour MichDenis,
pardon j'ai fait un coper coller un peu rapide.
Je n'active qu'une des deux lignes, l'autre je la mets en commentaire.
quand j'attribue "cat" a clef ça marche tout seul mais pas dans l'autre cas.
Merci pour la proposition je vais voir si je m'en sors
Que veux-tu attribuer comme valeur à Clef ? Tu as droit à une valeur à la fois !
Dans cette procédure, Public Sub write_value(key As String), tu utilises
la méthode "Find". Cette dernière renvoie une erreur de type 91 lorssqu'elle
ne trouve pas donc tu dois utiliser avant ceci : On error resume next
Voici une façon de réécrire tes macros :
'----------------------------
Sub boucle_en_ligne()
Dim ligne As Integer
Dim code_ISIC As String, clef As String
code_ISIC = "FR0004254035"
With Sheets(2) 'Préférable d'inscrire son nom
For ligne = 3 To 100
clef = .Cells(ligne, 1).Value & "-" & code_ISIC
clef = "cat"
' à toi de déterminer où les données doivent être copiées.
.Cells(2, ligne) = Trouve_value(clef)
Next
End With
End Sub
'----------------------------
'----------------------------
Public Function Trouve_value(key As String)
On Error Resume Next
With Sheets("NomFeuille") 'nom feuille à déterminer
Trouve_value = .Cells.Find(what:=key).Offset(0, 3)
End With
End Function
'----------------------------
"Uncas Cooper" <uncascooper@gmail.com> a écrit dans le message de news: %23k2rddY1IHA.2068@TK2MSFTNGP05.phx.gbl...
Bonjour a tous,
Par avance merci de votre aide.
Voici la situation:
j'ai une macro Write_value()
j'ai une deuxieme macro boucle()
dans cette macro boucle si je fais:
Call write_value("Toto")
Impossible de "passer" ma variable Toto a l'autre macro, et je ne trouve
pas. Je dois declarer quelquechose? ou? Si je pointe sur la variable
toto est a l'air d'avoir la bonne valeur.
Merci beaucoup.
Uncas
pour info les deux subs sont ci dessous:
-------------------------------------------------------
Sub boucle_en_ligne()
Dim code_ISIC, clef As String
code_ISIC = "FR0004254035"
Dim ligne As Integer
Sheets(2).Select
For ligne = 3 To 100
clef = Cells(ligne, 1).Value & "-" & code_ISIC
clef = "cat"
Call write_value(clef)
Next
End Sub
--------------------------------------------------------
Public Sub write_value(key As String)
Sheets(1).Select
Cells.Find(what:=key).Offset(0, 3).Select
tempo = Selection.Value
Sheets(2).Cells(2, 2).Value = tempo
pardon j'ai fait un coper coller un peu rapide. Je n'active qu'une des deux lignes, l'autre je la mets en commentaire. quand j'attribue "cat" a clef ça marche tout seul mais pas dans l'autre cas.
Merci pour la proposition je vais voir si je m'en sors
Que veux-tu attribuer comme valeur à Clef ? Tu as droit à une valeur à la fois !
Dans cette procédure, Public Sub write_value(key As String), tu utilises la méthode "Find". Cette dernière renvoie une erreur de type 91 lorssqu'elle ne trouve pas donc tu dois utiliser avant ceci : On error resume next
Voici une façon de réécrire tes macros :
'---------------------------- Sub boucle_en_ligne()
Dim ligne As Integer Dim code_ISIC As String, clef As String code_ISIC = "FR0004254035"
With Sheets(2) 'Préférable d'inscrire son nom For ligne = 3 To 100 clef = .Cells(ligne, 1).Value & "-" & code_ISIC clef = "cat" ' à toi de déterminer où les données doivent être copiées. .Cells(2, ligne) = Trouve_value(clef) Next End With End Sub '----------------------------
'---------------------------- Public Function Trouve_value(key As String) On Error Resume Next With Sheets("NomFeuille") 'nom feuille à déterminer Trouve_value = .Cells.Find(what:=key).Offset(0, 3) End With End Function '----------------------------
"Uncas Cooper" a écrit dans le message de news: % Bonjour a tous,
Par avance merci de votre aide.
Voici la situation: j'ai une macro Write_value()
j'ai une deuxieme macro boucle()
dans cette macro boucle si je fais: Call write_value("Toto")
Impossible de "passer" ma variable Toto a l'autre macro, et je ne trouve pas. Je dois declarer quelquechose? ou? Si je pointe sur la variable toto est a l'air d'avoir la bonne valeur.
Merci beaucoup.
Uncas
pour info les deux subs sont ci dessous: ------------------------------------------------------- Sub boucle_en_ligne()
Dim code_ISIC, clef As String code_ISIC = "FR0004254035"
Dim ligne As Integer
Sheets(2).Select
For ligne = 3 To 100 clef = Cells(ligne, 1).Value & "-" & code_ISIC clef = "cat" Call write_value(clef)
Next
End Sub
-------------------------------------------------------- Public Sub write_value(key As String)
Sheets(1).Select Cells.Find(what:=key).Offset(0, 3).Select tempo = Selection.Value Sheets(2).Cells(2, 2).Value = tempo
End Sub
Uncas Cooper
ça a marché nickel, merci beaucoup!
C'est juste c'est la premiere fois que je mets a utiliser des variables et je ne suis pas du tout a l'aise encore pour savoir comment je les definis, quelles portee elles ont etc...
merci encore
uncas
escribió:
Salut à toi
Pourquoi ne pas déclarer ta variable toto en variable Public en mettant en tout début cette ligne :
Public toto
La valeur toto récupéré en 1° macro (toto = Cells(ligne, 1).Value & "-" & code_ISIC )
sera reconduite dans la 2° macro sans utiliser la ligne : Call write_value (Toto)
directement utilisable comme par exemple MsgBox(toto)
Seul impératif éxécuter la 1° macro avant d'éxécuter la 2° en mettant en fin de 1° Macro la commande :
Run("2° Macro")
Celà devrait faire
Dis moi !!!!
ça a marché nickel, merci beaucoup!
C'est juste c'est la premiere fois que je mets a utiliser des variables
et je ne suis pas du tout a l'aise encore pour savoir comment je les
definis, quelles portee elles ont etc...
merci encore
uncas
francois.forcet@wanadoo.fr escribió:
Salut à toi
Pourquoi ne pas déclarer ta variable toto en variable Public en
mettant en tout début cette ligne :
Public toto
La valeur toto récupéré en 1° macro (toto = Cells(ligne, 1).Value &
"-" & code_ISIC )
sera reconduite dans la 2° macro sans utiliser la ligne : Call
write_value (Toto)
directement utilisable comme par exemple MsgBox(toto)
Seul impératif éxécuter la 1° macro avant d'éxécuter la 2° en mettant
en fin de 1° Macro la commande :
C'est juste c'est la premiere fois que je mets a utiliser des variables et je ne suis pas du tout a l'aise encore pour savoir comment je les definis, quelles portee elles ont etc...
merci encore
uncas
escribió:
Salut à toi
Pourquoi ne pas déclarer ta variable toto en variable Public en mettant en tout début cette ligne :
Public toto
La valeur toto récupéré en 1° macro (toto = Cells(ligne, 1).Value & "-" & code_ISIC )
sera reconduite dans la 2° macro sans utiliser la ligne : Call write_value (Toto)
directement utilisable comme par exemple MsgBox(toto)
Seul impératif éxécuter la 1° macro avant d'éxécuter la 2° en mettant en fin de 1° Macro la commande :
Run("2° Macro")
Celà devrait faire
Dis moi !!!!
Misange
Bonjour
alors cette page est pour toi ! http://www.excelabo.net/excel/macrosvariables.php
Misange migrateuse XlWiki : Participez à un travail collaboratif sur excel ! http://xlwiki.free.fr/wiki http://www.excelabo.net
Uncas Cooper a écrit :
ça a marché nickel, merci beaucoup!
C'est juste c'est la premiere fois que je mets a utiliser des variables et je ne suis pas du tout a l'aise encore pour savoir comment je les definis, quelles portee elles ont etc...
merci encore
uncas
escribió:
Salut à toi
Pourquoi ne pas déclarer ta variable toto en variable Public en mettant en tout début cette ligne :
Public toto
La valeur toto récupéré en 1° macro (toto = Cells(ligne, 1).Value & "-" & code_ISIC )
sera reconduite dans la 2° macro sans utiliser la ligne : Call write_value (Toto)
directement utilisable comme par exemple MsgBox(toto)
Seul impératif éxécuter la 1° macro avant d'éxécuter la 2° en mettant en fin de 1° Macro la commande :
Run("2° Macro")
Celà devrait faire
Dis moi !!!!
Bonjour
alors cette page est pour toi !
http://www.excelabo.net/excel/macrosvariables.php
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net
Uncas Cooper a écrit :
ça a marché nickel, merci beaucoup!
C'est juste c'est la premiere fois que je mets a utiliser des variables
et je ne suis pas du tout a l'aise encore pour savoir comment je les
definis, quelles portee elles ont etc...
merci encore
uncas
francois.forcet@wanadoo.fr escribió:
Salut à toi
Pourquoi ne pas déclarer ta variable toto en variable Public en
mettant en tout début cette ligne :
Public toto
La valeur toto récupéré en 1° macro (toto = Cells(ligne, 1).Value &
"-" & code_ISIC )
sera reconduite dans la 2° macro sans utiliser la ligne : Call
write_value (Toto)
directement utilisable comme par exemple MsgBox(toto)
Seul impératif éxécuter la 1° macro avant d'éxécuter la 2° en mettant
en fin de 1° Macro la commande :
alors cette page est pour toi ! http://www.excelabo.net/excel/macrosvariables.php
Misange migrateuse XlWiki : Participez à un travail collaboratif sur excel ! http://xlwiki.free.fr/wiki http://www.excelabo.net
Uncas Cooper a écrit :
ça a marché nickel, merci beaucoup!
C'est juste c'est la premiere fois que je mets a utiliser des variables et je ne suis pas du tout a l'aise encore pour savoir comment je les definis, quelles portee elles ont etc...
merci encore
uncas
escribió:
Salut à toi
Pourquoi ne pas déclarer ta variable toto en variable Public en mettant en tout début cette ligne :
Public toto
La valeur toto récupéré en 1° macro (toto = Cells(ligne, 1).Value & "-" & code_ISIC )
sera reconduite dans la 2° macro sans utiliser la ligne : Call write_value (Toto)
directement utilisable comme par exemple MsgBox(toto)
Seul impératif éxécuter la 1° macro avant d'éxécuter la 2° en mettant en fin de 1° Macro la commande :