Besoin d'aide Visual basic : Pourquoi ça ne fonctionne pas ? [Résolu]

Messages postés
9
Date d'inscription
mercredi 18 novembre 2009
Dernière intervention
21 février 2012
- - Dernière réponse : LIBRE_MAX
Messages postés
1403
Date d'inscription
mardi 1 mai 2007
Dernière intervention
7 octobre 2012
- 14 févr. 2012 à 23:24
Bonjour,
J'ai créer un petit programme qui teste les valeurs de cellules de la colonne A. Pour cela je compare la valeur à celle de la cellule qui la suit. Si les deux valeurs sont identiques alors il faut effacer la 1ere valeur t continuer le test.
Je devrais le faire ensuite pour les autres colonnes de ma feuille de données.
Pouvez-vous m'expliquer pourquoi cela ne marche pas ?

Je vous remercie d'avance pour votre aide

Sub misepage1()
Dim Reponse As Integer
Dim Rw As Range
Dim Ligne As Long
Dim i, j


MsgBox "Tri des données" '
Sheets("ST-Brevin").Select
ActiveCell.SpecialCells(xlLastCell).Select
Range(Selection, Cells(1)).Select




For Each Rw In Selection.Rows

Ligne = Rw.Row
i = 1
j = i + 1

If Rw.Cells(1, i).Value = Rw.Cells(1, j).Value Then
Rw.Cells(1, i).Value = " "


End If
i = i + 1
Next Rw

MsgBox "Fin" End Sub
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
3
Merci
ceci, par exemple, fera ce que tu veux, dans la colonne A de la feuille nommée "Feuil3" , de la première ligne à la dernière :
 Dim derlig As Long, i As Long
  With Sheets("Feuil3")
    derlig = .Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To derlig - 1
      If .Range("A" & i).Value = .Range("A" & i + 1).Value Then
        .Range("A" & i).Value = ""
      End If
    Next
  End With

Il n'y a dans ce code, comme tu peux le voir, aucun "select"


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient

Dire « Merci » 3

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

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonjour,

Avant toute autres choses :
1) tu as ouvert ta discussion dans la section non appropriée de ce forum. Tu aurais du l'ouvrir dans la section "Langages dérivés > VBA"
Un administrateur déplacera la présente discussion, mais veille à observer dorénavant cette discipline.
2) pense également à utiliser les balises code de ce forum (en encadrer tes bouts de code). Ce n'est pas un luxe non plus
Tes approches à coups de "select" à tout va sont à proscrire.

Veux-tu bien nous dire quelle plage (d'où à où) tu veux traiter (cela se dit en très peu de mots).


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
1403
Date d'inscription
mardi 1 mai 2007
Dernière intervention
7 octobre 2012
0
Merci
Bonsoir,

[i]For Each Rw In Selection.Rows

Ligne = Rw.Row
i = 1
j = i + 1 /i

C' est comme qui dirait,"case départ" !

[] Ce qui va sans dire. va mieux en le disant.
Commenter la réponse de LIBRE_MAX

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.