azertyfred
-
1 avril 2013 à 15:17
MarcPL
Messages postés172Date d'inscriptionjeudi 8 décembre 2011StatutMembreDernière intervention21 juillet 2013
-
1 avril 2013 à 19:30
Bonjour,
Je ne suis pas certain d'être dans le bon topic (desole).
C'est pour du VBA excel :)
J'essaye de parcourir un tableau [A1:B3] dans "sheet1" avec les valeurs ci dessous:
- A B
1 2 3
2 3 0
3 0 5
Si je trouve une valeur egale a zero je la poste dans la meme cellule mais sur la feuille suivante (sheet2):
- A B
1 - -
2 - 0
3 0 -
J ai fais cela mais je ne parcours que la colonne A
Set ResultRange = Sheets("Sheet2").Range("A1:B3")
Set InfoS1 = Sheets("Sheet1").Range("A1:B3")
For i = 1 To InfoS1.Count
If InfoS1.Cells(i, 1) = "0" Then
InfoS1.Cells(i, 1).Copy
ResultRange.Cells(i, 1).PasteSpecial xlPasteValues
End If
Next i
MarcPL
Messages postés172Date d'inscriptionjeudi 8 décembre 2011StatutMembreDernière intervention21 juillet 20132 1 avril 2013 à 16:30
Bonjour, ta variable Cell fait référence à une plage de la feuille 1,
elle ne peut donc pas s'appliquer sur une autre feuille !
Mais en récupérant l'adresse de la cellule (propriété .Address) :
For Each Cel In Info
If Cel.Value "0" Then Result.Range(Cel.Address).Value 0
Next
___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 1 avril 2013 à 15:45
Bonjour,
En effet, VB6 n'est pas VBA, j'ai déplacé le message.
Sinon, c'est normal que tu ne passes que sur la colonne A, tu lui dit explicitement de le faire : InfoS1.Cells(i, 1)
Essayes For Each, et regardes aussi MaCellule.Address
v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
Mon site
MarcPL
Messages postés172Date d'inscriptionjeudi 8 décembre 2011StatutMembreDernière intervention21 juillet 20132 1 avril 2013 à 18:56
Autre méthode plus simple en jouant avec le n° de la cellule:
For N = 1 To Info.Cells.Count
If Info(N).Value "0" Then Result(N).Value 0
Next
___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
MarcPL
Messages postés172Date d'inscriptionjeudi 8 décembre 2011StatutMembreDernière intervention21 juillet 20132 1 avril 2013 à 19:30
Oui, et t'étais pas loin lors de ton premier code exposé ! ...
___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !