Parcourir ligne et colonne [Résolu]

- - Dernière réponse : MarcPL
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Statut
Membre
Dernière intervention
21 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


Voila merci, Bonne journee
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Statut
Membre
Dernière intervention
21 juillet 2013
2
3
Merci
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 !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de MarcPL
Messages postés
14570
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 octobre 2019
136
0
Merci
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
Commenter la réponse de NHenry
0
Merci
Merci pour ton retour Henry et d'avoir redirige mon (tout premier) post =)

J ai essaye de faire un For Each mais il y a une erreur quelque part...

Sub Result()
Set Info = Sheets("Sheet1").Range("A1:B3")
Set Result = Sheets("Sheet2").Range("A1:B3")

For Each Cell In Info

If Info.Cell = "0" Then
Info.Cell.Copy
Result.Cell.PasteSpecial xlPasteValues
End If
Next
End Sub

Merci encore,
Commenter la réponse de azertyfred
0
Merci
merci beaucoup pour ta réponse. ouah c'est fou tout ce qu'on peut faire
Commenter la réponse de azertyfred
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Statut
Membre
Dernière intervention
21 juillet 2013
2
0
Merci
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 !
Commenter la réponse de MarcPL
0
Merci
Ouahhh encore mieux!!!

Merci Marc. Plus c'est simple, mieux c'est!!!

Merci encore!!!
Commenter la réponse de azertyfred
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Statut
Membre
Dernière intervention
21 juillet 2013
2
0
Merci
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 !
Commenter la réponse de MarcPL