Vba
Résolu/Fermé
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
-
30 oct. 2008 à 13:42
usdy Messages postés 243 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 20 mai 2018 - 17 nov. 2008 à 14:58
usdy Messages postés 243 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 20 mai 2018 - 17 nov. 2008 à 14:58
21 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
30 oct. 2008 à 14:22
30 oct. 2008 à 14:22
Bonjour,
En plaçant dans le code à l'endroit voulu, pour activer la cellule C3 de la feuille 1 :
;o)
En plaçant dans le code à l'endroit voulu, pour activer la cellule C3 de la feuille 1 :
Worksheets("Feuil1").Range("C3").Select
;o)
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
30 oct. 2008 à 15:56
30 oct. 2008 à 15:56
De rien, n'oublie pas de mettre le sujet résolu
;o)
;o)
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
3 nov. 2008 à 10:58
3 nov. 2008 à 10:58
j'ai essayé de mettre : Worksheets("Feuil1").Range("C3").Select comme tu me l'avais écrit mais ça ne marche pas .
je crois que le problème vient du fait que j'utilise les données d'une feuille A que je colle dans les cellules d'une feuille B, pour cela j'ai fait plusieurs procédures mais ces procédures je dois les mettre dans le code de la feuille A ou de la feuille B ?
Quand je mets les procédures dans le code de la feuille B alors dès que j'utilise la feuille A ça plante et inversement si je mets les procédures dans le code de la feuille A, dés que j'utilise la feuille B ça plante.
merci de m'aider
je crois que le problème vient du fait que j'utilise les données d'une feuille A que je colle dans les cellules d'une feuille B, pour cela j'ai fait plusieurs procédures mais ces procédures je dois les mettre dans le code de la feuille A ou de la feuille B ?
Quand je mets les procédures dans le code de la feuille B alors dès que j'utilise la feuille A ça plante et inversement si je mets les procédures dans le code de la feuille A, dés que j'utilise la feuille B ça plante.
merci de m'aider
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
3 nov. 2008 à 11:02
3 nov. 2008 à 11:02
Bonjour,
Comment déclenches-tu tes copies de cellules ?
Comment déclenches-tu tes copies de cellules ?
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
3 nov. 2008 à 11:14
3 nov. 2008 à 11:14
voici un bout de mon code :
Range("B2: B" & i).Copy 'i correspond au nombre total de lignes
Worksheets("feuille A").Range("B7").Select 'ouverture de la feuille contenant dans laquelle on colle
ActiveSheet.PasteSpecial 'collage
Range("B").Copy 'je copie la colonne B
Range("J").PasteSpecial 'je la colle dans la colonne J de la même feuille
voici l'erreur obtenue :
run-time error 1004 : application-defined or object-defined error
Range("B2: B" & i).Copy 'i correspond au nombre total de lignes
Worksheets("feuille A").Range("B7").Select 'ouverture de la feuille contenant dans laquelle on colle
ActiveSheet.PasteSpecial 'collage
Range("B").Copy 'je copie la colonne B
Range("J").PasteSpecial 'je la colle dans la colonne J de la même feuille
voici l'erreur obtenue :
run-time error 1004 : application-defined or object-defined error
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
3 nov. 2008 à 11:23
3 nov. 2008 à 11:23
Peux tu mettre ton fichier sur https://www.cjoint.com/ et mettre le lien ici. Enlève les données sensibles, seul le code m'intéresse. Si le fichier fait plus de 500 ko, il faut le compresser.
Merci
Merci
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
3 nov. 2008 à 11:36
3 nov. 2008 à 11:36
la procédure qui me pose problème n'est pas très longue dc je te la joins ci dessous, elle est mise dans le
code de la feuille "tableau" :
Public Sub remplir()
Worksheets("tableau").Select
For Each c In [b2:b60]
If c.Value Like "Total 1" Then
total_1 = c.Row 'on stocke le num de la ligne dans une variable
End If
If c.Value Like "Total 2" Then
total_2 = c.Row
total_2_bis = total_2 + 1
End If
If c.Value Like "Total 3" Then
total_3 = c.Row
total_3_bis = total_3 + 1
End If
If c.Value Like "Total 4" Then
total_4 = c.Row
End If
If c.Value Like "Total 5" Then
total_5 = c.Row
total_5_bis = total_5 + 1
total_6 = total_5 + 2
otoal_7 = total_5 + 3
total_7_bis = total_5 + 4
End If
Next
Range("B2: B" & total_7_bis).Copy
Worksheets("new tab").Range("B7").Select
ActiveSheet.PasteSpecial
Range("B").Copy
Range("J").PasteSpecial
End Sub
code de la feuille "tableau" :
Public Sub remplir()
Worksheets("tableau").Select
For Each c In [b2:b60]
If c.Value Like "Total 1" Then
total_1 = c.Row 'on stocke le num de la ligne dans une variable
End If
If c.Value Like "Total 2" Then
total_2 = c.Row
total_2_bis = total_2 + 1
End If
If c.Value Like "Total 3" Then
total_3 = c.Row
total_3_bis = total_3 + 1
End If
If c.Value Like "Total 4" Then
total_4 = c.Row
End If
If c.Value Like "Total 5" Then
total_5 = c.Row
total_5_bis = total_5 + 1
total_6 = total_5 + 2
otoal_7 = total_5 + 3
total_7_bis = total_5 + 4
End If
Next
Range("B2: B" & total_7_bis).Copy
Worksheets("new tab").Range("B7").Select
ActiveSheet.PasteSpecial
Range("B").Copy
Range("J").PasteSpecial
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
3 nov. 2008 à 12:14
3 nov. 2008 à 12:14
Ca ne me dit pas comment la procédure remplir() est appelée.
Pourquoi ne pas mettre cettre procédure dans un module indépendant ?
Ensuite plutôt que "Worksheets("tableau").Select", j'opterai pour "Worksheets("tableau").Activate".
Je ferai également :
Worksheets("tableau").Range("B2: B" & total_7_bis).Copy
Worksheets("new tab").Range("B7").PasteSpecial
;o)
Pourquoi ne pas mettre cettre procédure dans un module indépendant ?
Ensuite plutôt que "Worksheets("tableau").Select", j'opterai pour "Worksheets("tableau").Activate".
Je ferai également :
Worksheets("tableau").Range("B2: B" & total_7_bis).Copy
Worksheets("new tab").Range("B7").PasteSpecial
;o)
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
3 nov. 2008 à 13:22
3 nov. 2008 à 13:22
En mettant la procédure dans un module indépendant ça signifie qu'elle n'appartiendra pas à une feuille en particulier ?
Comment je peux la mettre dans un module indépendant ?
Comment je peux la mettre dans un module indépendant ?
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
3 nov. 2008 à 13:24
3 nov. 2008 à 13:24
Dans l'éditeur VB, faire Insertion > Module
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
3 nov. 2008 à 13:32
3 nov. 2008 à 13:32
par contre si je mets mes procédures dans un module, je serais alors obligée de les appeler pour qu'au lancement de la macro elles puissent générer le résultat attendu ?
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
3 nov. 2008 à 13:34
3 nov. 2008 à 13:34
Oui, d'où ma question. Comment est déclenchée cette procédure ???
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
3 nov. 2008 à 13:37
3 nov. 2008 à 13:37
j'appelle jamais les procédures que je créee. pour verifier si elles sont sans erreur, je fais le debogage pas à pas et quand je lance la macro elles sont appelées automatiquement.
Mais je trouve ça un peu bizarre pck dans les autres langages comme java, c ou c++ d'habitude la procédure doit être appelée
Mais je trouve ça un peu bizarre pck dans les autres langages comme java, c ou c++ d'habitude la procédure doit être appelée
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
3 nov. 2008 à 14:00
3 nov. 2008 à 14:00
Dans tous les langages informatique, une procédure ou une fonction est forcément appelée. Sauf dans le cas d'un main() qui est la procédure de lancement d'un programme.
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
3 nov. 2008 à 14:32
3 nov. 2008 à 14:32
Je suis tout à fait d'accord mais ça fait pas longtemps que je programme sur vba et j'ai toujours fait des procédures sans les appeller, quel est l'équivalent du main dans vba ?
Comment t'expliques le fait que mes procédures s'executent quand je lance la macro ?
Comment t'expliques le fait que mes procédures s'executent quand je lance la macro ?
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
3 nov. 2008 à 14:47
3 nov. 2008 à 14:47
Ben voilà, tu l'as fait :O))
Tu lances la procédure en te servant du menu Visual Basic dans les barres de menu Excel, ou par un raccourci.
Dans ce cas, la macro doit se trouver dans un module indépendant et non sur le module d'un feuille, réservé pour l'initialiser le cas échéant lors de son activation.
Attention, Excel n'est pas un outil de développement. Les macros servent uniquement à automatiser des tâches complexes ou répétitives.
;o)
Tu lances la procédure en te servant du menu Visual Basic dans les barres de menu Excel, ou par un raccourci.
Dans ce cas, la macro doit se trouver dans un module indépendant et non sur le module d'un feuille, réservé pour l'initialiser le cas échéant lors de son activation.
Attention, Excel n'est pas un outil de développement. Les macros servent uniquement à automatiser des tâches complexes ou répétitives.
;o)
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
3 nov. 2008 à 14:56
3 nov. 2008 à 14:56
ok je comprends mieux, c'est gentil d'avoir répondu à toutes mes questions.
par contre j'ai un autre souci, quand je créee une nouvelle feuille, je lui donne un nom et je la créee sa marche mais ensuite quand elle est créee dans l'onglet il n'y a pas le nom que je lui ai attribué.
par contre j'ai un autre souci, quand je créee une nouvelle feuille, je lui donne un nom et je la créee sa marche mais ensuite quand elle est créee dans l'onglet il n'y a pas le nom que je lui ai attribué.
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
3 nov. 2008 à 15:07
3 nov. 2008 à 15:07
Je ne comprends pas trop. Comment est créée cette feuille ? avec un code VBA ou avec les fonctions Excel ?
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
3 nov. 2008 à 15:44
3 nov. 2008 à 15:44
je l'ai faite avec un code vba.
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
3 nov. 2008 à 15:47
3 nov. 2008 à 15:47
Peux-tu mettre ton code ici, stp ?
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
3 nov. 2008 à 15:58
3 nov. 2008 à 15:58
c'est bon merxci j'ai modifié mon prog en mettant :
Dim feuille As String
feuille = "ma feuille"
ActiveWorkbook.Worksheets.Add.Name = feuille
par contre je voudrais faire une boucle for each mais je crois que ma syntaxe est mauvaise :
For Each a In ["E" &val1 : "E" &val2]
en le compilant il m'indique une erreur.
merci
Dim feuille As String
feuille = "ma feuille"
ActiveWorkbook.Worksheets.Add.Name = feuille
par contre je voudrais faire une boucle for each mais je crois que ma syntaxe est mauvaise :
For Each a In ["E" &val1 : "E" &val2]
en le compilant il m'indique une erreur.
merci
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
3 nov. 2008 à 16:03
3 nov. 2008 à 16:03
j'ai finalement réussi en modifiant mon programme :
Dim feuille As String
feuille = "ma feuille"
ActiveWorkbook.Worksheets.Add.Name = feuille
mais maintenant je voudrais faire une boucle mais je crois que j'ai un problème de syntaxe car il me met une
erreur quand je compile :
For Each a In ["E" &lval1 : "E" &val2]
Dim feuille As String
feuille = "ma feuille"
ActiveWorkbook.Worksheets.Add.Name = feuille
mais maintenant je voudrais faire une boucle mais je crois que j'ai un problème de syntaxe car il me met une
erreur quand je compile :
For Each a In ["E" &lval1 : "E" &val2]
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
3 nov. 2008 à 16:09
3 nov. 2008 à 16:09
il faut faire :
Set plage = Nothing
;o)
Dim a As Range Dim plage As Range Set plage = Worksheets(1).Range("E" & val1 & ":E" & val2) For Each a In plage '... Next a
Set plage = Nothing
;o)
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
3 nov. 2008 à 16:18
3 nov. 2008 à 16:18
dans ma boucle for each je mets :
resultat1 = resultat1 + a.Value
quand je teste ce que tu m'as expliqué ça fonctionne mais quand il rentre dans ma boucle for il me signale une erreur mismatch
resultat1 = resultat1 + a.Value
quand je teste ce que tu m'as expliqué ça fonctionne mais quand il rentre dans ma boucle for il me signale une erreur mismatch
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
3 nov. 2008 à 16:25
3 nov. 2008 à 16:25
Quel est le type de resultat1 ? Si c'est un entier, fait :
resultat1 = resultat1 + Cint(a.Value)
resultat1 = resultat1 + Cint(a.Value)
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
3 nov. 2008 à 16:29
3 nov. 2008 à 16:29
nickel :->
merci beaucoup pour ton aide.
je crois que je t'ai assez embêté pour aujourd'hui dc fini les questions mais ça ne veut pas dire que je ne serai pas de retour demain sur le forum avec des questions encore plus bête que celles que j'ai posé aujourd'hui.
merci encore poulux31
a+
merci beaucoup pour ton aide.
je crois que je t'ai assez embêté pour aujourd'hui dc fini les questions mais ça ne veut pas dire que je ne serai pas de retour demain sur le forum avec des questions encore plus bête que celles que j'ai posé aujourd'hui.
merci encore poulux31
a+
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
3 nov. 2008 à 16:32
3 nov. 2008 à 16:32
De rien,
Il n'y a pas de questions bêtes. Bien souvent ceux sont les réponses qui sont bêtes !!!
Bon courage pour la suite et n'hésite pas à revenir.
;o)
PS: Pense à mettre résolu pour ce sujet.
Il n'y a pas de questions bêtes. Bien souvent ceux sont les réponses qui sont bêtes !!!
Bon courage pour la suite et n'hésite pas à revenir.
;o)
PS: Pense à mettre résolu pour ce sujet.
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
4 nov. 2008 à 13:33
4 nov. 2008 à 13:33
hello!
j'ai un petit souci (encore!!) avec le programme suivant:
le problème se situe là où j'ai mis des points d'interrogations, parce que je veux récuperer le numéro de la ligne obtenue après l'autofilter fait juste au dessus :
Public Sub mise_a_jour()
Worksheets("work").Activate
For Each i In [f32:f3560]
If (i.Value <> 0) Then
Worksheets("references").Activate
Selection.AutoFilter field:=1, Criteria1:=i.Value
Worksheets("work").Range("M" & i.Row).Value = Worksheets("references").Range("C" & ?????).Value
ElseIf (i.Value = 0) And (Range("H" & i.Row).Value = "A1" Or Range("H" & i.Row).Value = "A2") Then
Range("M" & i.Row).Value = "A"
ElseIf (i.Value = 0) And (Range("H" & i.Row).Value = "B1" Or Range("H" & i.Row).Value = "B2") Then
Range("M" & i.Row).Value = "B"
ElseIf (i.Value = 0) And (Range("H" & i.Row).Value = "C1") Then
Range("M" & i.Row).Value = "C"
End If
Next
End Sub
MERCI
j'ai un petit souci (encore!!) avec le programme suivant:
le problème se situe là où j'ai mis des points d'interrogations, parce que je veux récuperer le numéro de la ligne obtenue après l'autofilter fait juste au dessus :
Public Sub mise_a_jour()
Worksheets("work").Activate
For Each i In [f32:f3560]
If (i.Value <> 0) Then
Worksheets("references").Activate
Selection.AutoFilter field:=1, Criteria1:=i.Value
Worksheets("work").Range("M" & i.Row).Value = Worksheets("references").Range("C" & ?????).Value
ElseIf (i.Value = 0) And (Range("H" & i.Row).Value = "A1" Or Range("H" & i.Row).Value = "A2") Then
Range("M" & i.Row).Value = "A"
ElseIf (i.Value = 0) And (Range("H" & i.Row).Value = "B1" Or Range("H" & i.Row).Value = "B2") Then
Range("M" & i.Row).Value = "B"
ElseIf (i.Value = 0) And (Range("H" & i.Row).Value = "C1") Then
Range("M" & i.Row).Value = "C"
End If
Next
End Sub
MERCI
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
4 nov. 2008 à 13:40
4 nov. 2008 à 13:40
Bonjour,
Une question peut être bête : Pourquoi faire un autofilter pour faire un test ensuite sur des valeurs ? L'autofilter ne change pas le numéro des lignes, il cache les numéros de ligne non affectés par le filtre.
;o)
Une question peut être bête : Pourquoi faire un autofilter pour faire un test ensuite sur des valeurs ? L'autofilter ne change pas le numéro des lignes, il cache les numéros de ligne non affectés par le filtre.
;o)
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
4 nov. 2008 à 13:44
4 nov. 2008 à 13:44
je fais un autofilter pour avoir la ligne dont la valeur de la colonne A dans la feuille references est identique à la ligne parcourue par la boucle each dans la feuille work.
Je fais un autofilter pour obtenir la valeur de la colonne C pour la copier dans la colonne M de la feuille Work.
Je fais un autofilter pour obtenir la valeur de la colonne C pour la copier dans la colonne M de la feuille Work.
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
4 nov. 2008 à 13:50
4 nov. 2008 à 13:50
je pense avoir réussi j'ai rajouter après l'autofilter : numligne = Selection.Row.
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
4 nov. 2008 à 13:53
4 nov. 2008 à 13:53
Comment tu fais pour désactiver le filtre pck jai essayé d'utiliser showalldata mais je crois que ma syntaxe est mauvaise.
merci
merci
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
4 nov. 2008 à 14:01
4 nov. 2008 à 14:01
en faisant:
Worksheets(1).AutoFilterMode = False
;o)
Worksheets(1).AutoFilterMode = False
;o)
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
4 nov. 2008 à 14:27
4 nov. 2008 à 14:27
merci.
par contre pour récuperer la ligne dont je t'avais parlé tout à l'heure, j'ai un petit souci pck au premier passage dans la boucle for j'obtiens ligne = 650, ensuite cette valeur ne se modifie pas quand la boucle for each continue.
Public Sub maj()
Worksheets("work").Activate
For Each i In [f32:f3560]
If (i.Value <> 0) Then
Worksheets("references").Activate
Worksheets("references").AutoFilterMode = False
Selection.AutoFilter field:=1, Criteria1:=i.Value
ligne = Selection.Row
MsgBox ("valeur de ligne = " & ligne) 'affichage permettant de verifier la valeur de la ligne
Worksheets("work").Range("M" & i.Row).Value = Worksheets("references").Range("C" & ligne).Value
end if
next
end sub
merci
par contre pour récuperer la ligne dont je t'avais parlé tout à l'heure, j'ai un petit souci pck au premier passage dans la boucle for j'obtiens ligne = 650, ensuite cette valeur ne se modifie pas quand la boucle for each continue.
Public Sub maj()
Worksheets("work").Activate
For Each i In [f32:f3560]
If (i.Value <> 0) Then
Worksheets("references").Activate
Worksheets("references").AutoFilterMode = False
Selection.AutoFilter field:=1, Criteria1:=i.Value
ligne = Selection.Row
MsgBox ("valeur de ligne = " & ligne) 'affichage permettant de verifier la valeur de la ligne
Worksheets("work").Range("M" & i.Row).Value = Worksheets("references").Range("C" & ligne).Value
end if
next
end sub
merci
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
4 nov. 2008 à 15:00
4 nov. 2008 à 15:00
Je pense que la boucle doit se faire sur toutes les lignes, même celles cachées. Je ne suis pas sûr à 100% et je ne peux pas le vérifier à mon boulot.
Tu peux avoir peut être une explication sur le site de developpez.com, dans l'onglet MSOffice tu as la faq Excel. Il se peut que tu trouves ton bonheur.
;o)
Tu peux avoir peut être une explication sur le site de developpez.com, dans l'onglet MSOffice tu as la faq Excel. Il se peut que tu trouves ton bonheur.
;o)
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
4 nov. 2008 à 15:12
4 nov. 2008 à 15:12
ça me semblerait bizarre qu'il faille boucler parce que quand je lance le debogage "pas à pas", dans la feuille references, il filtre bien à la ligne demandée tout au long de la boucle for.
je regarde aussi sur développez.com
merci
je regarde aussi sur développez.com
merci
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
4 nov. 2008 à 16:18
4 nov. 2008 à 16:18
encore moi :->
j'ai essayé d'ajouter pleins de trucs à mon programme mais je vois vraiment pas où est le problème sachant que les filtres sont bons.
merci d'essayer de m'aider quand t'auras un peu de temps.
a+
j'ai essayé d'ajouter pleins de trucs à mon programme mais je vois vraiment pas où est le problème sachant que les filtres sont bons.
merci d'essayer de m'aider quand t'auras un peu de temps.
a+
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
4 nov. 2008 à 16:30
4 nov. 2008 à 16:30
je regarderai ça ce soir, mais je pense qu'il y a un autre moyen que de passer par les filtres.
@ +
;o)
@ +
;o)
usdy
Messages postés
243
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
20 mai 2018
6
4 nov. 2008 à 16:53
4 nov. 2008 à 16:53
j'ai finalement réussi en retirant les filtres et en faisant une boucle for
For Each v In [A1: A1088]
If (v.Value = i.Value) Then
Worksheets("work").Range("M" & i.Row).Value = Worksheets("references").Range("C" & v.Row).Value
End If
end for
merci pour ton aide et dsl de t'avoir dérangé pour rien
a+
For Each v In [A1: A1088]
If (v.Value = i.Value) Then
Worksheets("work").Range("M" & i.Row).Value = Worksheets("references").Range("C" & v.Row).Value
End If
end for
merci pour ton aide et dsl de t'avoir dérangé pour rien
a+
30 oct. 2008 à 15:55
7 nov. 2008 à 16:55
j'ai un petit souci avec ma macro encore et toujours =)
j'ai fait une procédure dans laquelle il y a des variables dans lesquelles je stocke des valeurs, jusque là tout va bien, le souci c'est que je crée une autre procédure après qui doit utliser les variales générées dan la procédure précédente.
Quand je mets les noms des variables le débogueur ne les reconnait pas.
merci de m'aider
7 nov. 2008 à 19:48
Les variables déclarées à l'intérieur d'une procédure ne sont vues et vivent que dans la procédure et durant l'exécution de cette procédure. Pour qu'une variable soit utilisée par plusieurs procédures, il faut la déclarée dans l'entête du module. Si la variable est déclarée Public, elle sera vu et pourra être utilisée en dehors du module. Si elle est déclarée Private, elle ne sera lue que dans le module où elle est déclarée.
;o)
13 nov. 2008 à 09:34
ça marche nickel.
bonne journée
13 nov. 2008 à 12:12
j'ai deux petits soucis avec ma macro, j'essaie de créer un tableau en passant par vba.
Je ne sais pas quelle propriété il faut utiliser pour délimiter les colonnes.
Mon autre prolème c'est qu'à la fin de ma fonction je fais un copier-coller et quand je lance la macro, dans la feuille où se fait le copier-coller la partie copier est entourée de pointillée et pareille pour la partie collée.
merci de m'aider