Résolu - Problèmes sur macro de colorisation de doublon en cas de cellule vide

Toine45

XLDnaute Junior
Bonjour à toutes et à tous

J'ai un souci sur une macro de colorisation de doublon :
Elle fonctionne très bien si l’on active une cellule dans la colonne où l’on veut détecter les doublons

Le problème est lorsque l’on active une cellule située en dessous de la dernière ligne de cette colonne, les cellules écrites au dessus ne sont pas traitées ça colorise toutes les cellules vides de la colonne, jusqu’en bas de la feuille et la macro ne s’arrête plus.

2 ème Problème, si une cellule vide se trouve entre d’autres cellules remplies, la macro s’arrête au dessus de cette cellule vide et ne traite pas ce qu’il y a en dessous.

3ème détail je désirerais faire apparaitre mon « messageBox » uniquement si aucune cellule n’est activée (cas lorsque l’on vient de changer de feuille) .

Y a-t-il un moyen de contourner ces 2 problèmes ? Je débute en VBA et je ne sais pas trop comment m’y prendre.


Code:
Type TableauType
Contenu As String
Coordonnee As Integer
End Type

Sub Inventaire_G()
'G : Macros de colorisation des doublons (en jaune)
'Macro N° 1 (1 minute de travail environ)
  Dim Tableau() As TableauType
  Dim Cellule, Haut, Bas, Compteur, C2
  
 On Error Resume Next
  If Selection Is Nothing Then
   MsgBox "Quittez l'userform et Selectionnez une cellule dans la colonne à dédoublonner."
   Exit Sub
End If
   
  Colonne = ActiveCell.Column
  Haut = Selection.End(xlUp).Row
  Bas = Selection.End(xlDown).Row
  ReDim Tableau(Bas)
  For Compteur = Haut To Bas
    Tableau(Compteur).Contenu = Cells(Compteur, Colonne)
    Tableau(Compteur).Coordonnee = Cells(Compteur, Colonne).Row
  Next
  For Compteur = Haut To Bas
    For C2 = (Compteur + 1) To Bas
      If Tableau(Compteur).Contenu = Tableau(C2).Contenu Then
        Cells(Tableau(Compteur).Coordonnee, Colonne).Interior.ColorIndex = 6
        Cells(Tableau(C2).Coordonnee, Colonne).Interior.ColorIndex = 6
      End If
    Next
  Next
End Sub

Merci beaucoup pour votre aide
 
Dernière édition:

Paf

XLDnaute Barbatruc
Re : Problèmes sur macro de colorisation de doublon en cas de cellule vide

bonjour,

Si j'ai compris, il s'agit de balayer une colonne jusqu'à la dernière ligne renseignée.
essayer avec cette modification:
remplacer
Code:
Haut = Selection.End(xlUp).Row
Bas = Selection.End(xlDown).Row
par
Code:
Haut = 1
Bas = Cells(Rows.Count, Colonne).End(xlUp).Row

le traitement débutera toujours à la ligne 1.

Si en colonne A les données vont de la ligne 1 à 30, même avec des cellules vides, la plage traitée sera de 1 à 30; y compris si la sélection se situe au delà de la ligne 30.

Bonne suite
 

Toine45

XLDnaute Junior
Re : Problèmes sur macro de colorisation de doublon en cas de cellule vide

Bonjour à tous
Merci pour vos réponses
Je testerai ça dès que possible
j'ai aussi été voir le site Formation Excel VBA JB
que je ne connaissais pas, c'est vrais qu'il est super ! il vaut le détour
comme je débute en VBA, il y a certainement y avoir pas mal de codes qui vont m'aider, ne ceraice que pour apprendre les bonnes syntaxes à employer.

Bon week-end
 

Discussions similaires

Réponses
3
Affichages
284

Statistiques des forums

Discussions
312 038
Messages
2 084 824
Membres
102 681
dernier inscrit
racsam77