Besoin d'aide Visual basic : Pourquoi ça ne fonctionne pas ?

Résolu
titamy Messages postés 9 Date d'inscription mercredi 18 novembre 2009 Statut Membre Dernière intervention 21 février 2012 - 14 févr. 2012 à 15:45
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre 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

3 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 219
14 févr. 2012 à 17:06
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
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 219
14 févr. 2012 à 16:31
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
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
14 févr. 2012 à 23:24
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.
0