Les Snippets

Connexion

Pseudo CheckBox

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 14/10/2008 16:50:44 et initié par bigfish_le vrai [Liste]
Vue : 543
Catégorie(s) : Trucs & Astuces
Langages dispo pour ce code :
- VBA



Langage : VBA
Date ajout : 14/10/2008
Posté par bigfish_le vrai [Liste]
'Cree par Bigish (Philippe E)
'Le 14/10/2008
'ce code est a mettre dans le code d'une feuille
Option Explicit
Const Marque As String = "\/"
Public Maplage As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Call PseudoCheckBox(Target)
End Sub
Sub PseudoCheckBox(ByVal Target As Range)
    Dim MaCellule As Range, TempPlage As Range
    
    'on verifi que la variable target pointe sur la colonne A et sur une cellule unique
    If Target.Column = 1 And Target.Cells.Count = 1 Then
        'on desactive la mise a jour de l'affichage
        Application.ScreenUpdating = False
        
        'si la variable target pointe sur une cellule qui contient deja la marque
        If Target = Marque Then
            'on efface le contenu de la cellule
            Target.ClearContents
            'on vide la variable MaPlage
            Set Maplage = Nothing
            'on recuppere toute les cellules qui contiennent du text en colonne A
            Set TempPlage = Columns("A:A").SpecialCells(xlCellTypeConstants, 2)
            'on vas verifier si ce text est une marque
            For Each MaCellule In TempPlage
                If MaCellule.Value = Marque Then 'si c'est une marque
                    'on reconstruit alors MaPlage
                    If Maplage Is Nothing Then 'premier passage
                         'entirerow sert a selectionner toute la ligne de la cellule pointee par MaCellule
                        Set Maplage = MaCellule.EntireRow
                    Else 'les autres passages
                        Set Maplage = Union(Maplage, MaCellule.EntireRow)
                    End If
                End If
            Next
            On Error Resume Next
            Maplage.Select
            
        'si la variable target pointe sur une cellule vide
        ElseIf Target.Value = "" Then
            With Target
                .Value = Marque 'on lui ajoute une marque
                'on met en forme la cellule
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
            End With
            
            'on met en forme la marque
            With Target.Characters(Start:=1, Length:=1).Font
                .Name = "Arial"
                .Size = 7
            End With
            With Target.Characters(Start:=2, Length:=1).Font
                .Name = "Arial"
                .FontStyle = "Italic"
                .Size = 12
            End With
            
            On Error Resume Next
            Maplage.Select
            Set Maplage = Union(Selection, Rows(Target.Row))
            Maplage.Select
        End If
        'on reactive la mise a jour de l'affichage
        Application.ScreenUpdating = True
      
    'si on clic en dehors de la colonne A elle sera vidée de ses marques (Option)
    ElseIf Not Target.Column = 1 And Target.Cells.Count = 1 Then
        'Columns(12).ClearContents
        'Set Maplage = Nothing
        'Target.Select
    End If

Snippets en rapport avec : Excel, Vba, Checkbox, Cellules



Codes sources en rapport avec : Excel, Vba, Checkbox, Cellules

{Visual Basic, VB6, VB.NET, VB 2005} VBA EXCEL FONCTION POUR FORMATER DES ECRITURES BANCAIRES
Je copiais mes écritures bancaires (LCL) à la main et je les formatais pour coïncider avec ma feuil...

{Visual Basic, VB6, VB.NET, VB 2005} LISTER FICHIERS D'UN DOSSIER
ce p'tit code permet de lister les fichiers d'un dossier choisi en plaçant leur noms, leur type et l...

{Visual Basic, VB6, VB.NET, VB 2005} EXCEL <> AUTOCAD LT
suite à des demandes régulières sur les liaisons DDE entre Autocad et excel, je vous joins cette ap...

{Visual Basic, VB6, VB.NET, VB 2005} SUBSTITUTION AU CONTROLE REFEDIT D'EXCEL
le Contrôle Refedit est utilisé dans excel pour sélectionner une plage de cellule(s) Cette substitu...

{Visual Basic, VB6, VB.NET, VB 2005} TRAIT SUR USF VBA
Pour repondre GRATUITEMENT à ma question posee sur le forum il y a 2 jours, voici la réponse. Contr...

{Visual Basic, VB6, VB.NET, VB 2005} GESTION D'USER/CLIENT SOUS EXCEL
Voici un pti fichier XLS, quipeut rendre bien des services, dés lors que vous devez gérer des client...

{Visual Basic, VB6, VB.NET, VB 2005} GRILLE QUI RÉSOUD LE SUDOKU
Bonjour tout le monde. Le fichier Excel que je vous envoie permet de résoudre la grille du célébr...

{Visual Basic, VB6, VB.NET, VB 2005} EXCEL VBA - FILTRER LE CONTENU D'UNE LISTVIEW
Voici une petite démo qui vous permettra de filtrer "on the fly" le contenu d'une listview, en sélec...

{Visual Basic, VB6, VB.NET, VB 2005} FRACTALES MANDELBROT & JULIA SOUS EXCEL
J'ai repris les classeurs transmis par "Bourbon1" et "bayosky" pour m'amuser un peu. J'y ai rajouté...

{Visual Basic, VB6, VB.NET, VB 2005} CALENDRIER STYLE OUTLOOK
Calendrier par jour, semaine, mois et année. Possibilité de noter vos rendez-vous (périodiques ou no...