Parcourir ligne et colonne

Résolu
azertyfred - 1 avril 2013 à 15:17
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

7 réponses

MarcPL Messages postés 172 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 21 juillet 2013 2
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 !
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
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
0
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,
0
merci beaucoup pour ta réponse. ouah c'est fou tout ce qu'on peut faire
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MarcPL Messages postés 172 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 21 juillet 2013 2
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 !
0
Ouahhh encore mieux!!!

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

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