VBA Excel : Cocher cellules sur plusieurs lignes et plusieur

Bonsoir,

Je suis actuellement entrain de me casser la tête sur un macro que je souhaite faire pour un fichier excel qui consiste en la suivi de saisie de dossiers.

En court, les colonnes sont les mois ' janvier février mars avril ....jusqu'en décembre. ' Les lignes sont les dossiers (90 clients) qui sont saisie.

Je souhaite faire 12 boutons macro, le bouton de janvier coche avec un 'X' la cellule sélectionné, alors que le bouton de février coche la colonne février et le mois précédent, et mars coche la colonne mars et les mois précédents. Donc Décembre coche toute la ligne.

Donc, le but, est simple, je veux que quand je sélectionne la cellule, que le macro prenne en compte la ligne et le bouton coche les différentes colonnes en fonction du mois choisi tout cela restant sur la même ligne. Ceci s'appliquant à 90 lignes sois disant clients.

J'ai réussi a faire un macro qui coche les cellules avec un double clique mais pas encore avec l’exemple expliqué au dessus qui permettra d'aller plus vite.

Je vous remercie et espère votre aide

Bonne soirée

Bonsoir,

Un seul bouton suffira. Inutile donc d'en fabriquer 12 !

Procédure à affecter au bouton :

Sub Cocher()
    Dim x%, y%
    With ActiveCell
        x = .Row: y = .Column
    End With
    ActiveSheet.Range(Cells(x, 2), Cells(x, y)).Value = "X"
End Sub

Cordialement.

Bonsoir,

Je vous remercie pour avoir répondu si rapidement !

Je ne peux pas le tester sous excel 2013 car je ne l'ai que au travail.

J'ai essayé sous Libre Office et cela me met un message erreur, voici l'imprim écran :

download

Cordialement.

VBA ne fonctionne pas sous LibreOffice.

D'accord excuse, je suis un grand débutant... je te préviens lundi quand j'aurai essayé le macro au travail.

Encore merci.

Bonne soirée

Bonjour,

J'ai regardé cette macro qui est génial et qui va m'aider pour remplir mes tableaux de stat de présence du personnel que je gère quel gain de temps, mais j'essaie de mettre les croix que sur 2 colonnes mais je bloque, j'ai changé en (x,3) qui m'amène sur la colonne C, mais quand je veux mettre une croix en G par exemple, il me mets des X sur toute la ligne et je ne sais pas comment faire pour caler les croix dans les colonnes B et C

ActiveSheet.Range(Cells(x, 3), Cells(x, y)).Value = "X"

Pourriez-vous m'orienté

Bien cordialement

ericp

Bonjour,

x est la ligne de la cellule sélectionnée, y sa colonne.

On définit une plage sur la ligne x allant de B à la colonne sélectionnée, dont toutes les cellules vont recevoir la même valeur (X)

Si tu veux que seules les cellules des colonnes B et C soient impactées, la colonne n'a plus d'importance dans la sélection et l'on peut l'abandonner, la ligne suffit.

Après avoir défini x :

ActiveSheet.Range(Cells(x, 2), Cells(x, 3)).Value = "X"

te mettra des X en B et C de la ligne sélectionnée.

Cordialement.

Ce ne pas tout a fait ce que j'essaie de faire, je voudrais que quand je clique sur B3, la croix se mette sur B3 et seulement sur B3 et quand je clique sur C2 la croix se mette sur C2 et seulement sur C2

Bien cordialement

A ce moment-là, la macro se limite à :

ActiveCell = "X"

Tel que défini plus haut, c'est lancé par un bouton, ce n'apporte aucun gain par rapport à la frappe d'un "X".

Si cela doit s'appliquer au clic (à la sélection de la cellule), le code doit être basculé dans une évènementielle SelectionChange de la feuille, mais il convient de définir une plage pour laquelle ce dispositif doit s'appliquer (sans quoi cela mettrait des X partout), et éventuellement si une sélection sur une cellule contenant un "X" doit aboutir à l'ôter.

Cordialement.

Zut, il n'y pas un moyen de faire une croix en colonne B et une croix en colonne C ?

C'est bien ce qu'on fait ! Non ?

Ben oui, mais je voulais mettre de la couleur dans X en jaune pour présent et rouge pour absent

tu vois l'impasse dans laquelle je suis

Non, je ne vois pas !

Sauf que jusqu'à présent tu ne l'as pas formulé...

S'il pouvait être tolérable que tu te greffes sur un sujet émis par quelqu'un d'autre dans la mesure ou cela présentait un grande parenté avec la question initiale, je conseillerai désormais d'ouvrir ton propre sujet, de préciser ta demande et de l'illustrer par un classeur. Il ne serait guère acceptable que tu continues à squatter ce sujet pour d'autres développements.

Cordialement.

Bien, je vais suivre tes conseils et ouvrir un post avec un fichier et donné un maximum de données.

Excuse moi de mettre inséré dans cette discution.

Bien cordialement

Bonjour M Ferrand,

Votre code fonctionne à merveille. Sauf que sur une feuille je veux que cela commence a cocher sur la colonne D et non pas C

Donc au lieu de ceci qui fait commencer sur la colonne C, je souhaiterai que cela commence sur la colonne D je ne trouve pas la variable qui modifie cela dans ton code, j'ai tenté de modifier ActiveSheet.Range(Cells(x, 3), Cells(x, y)).Value = "X"

Sub Cocher()

Dim x%, y%

With ActiveCell

x = .Row: y = .Column

End With

ActiveSheet.Range(Cells(x, 2), Cells(x, y)).Value = "X"

End Sub

Cordialement.

Bonjour,

La syntaxe de Cells : Cells(numéro de ligne, numéro de colonne).

Le 2 indique la colonne B, si tu mets 3 à la place, ce sera C et si tu veux D, il faut mettre 4.

La plage à remplir est définie sur la ligne sélectionnée, à partir de cette cellule, jusqu'à la colonne sélectionnée.

Cordialement.

Bonjour,

J'ai essayé cela mais je vais retenter. J'avais modifier le numéro pour la colonne C donc numéro 3 mais ça commençai colonne B quand même...

Cordialement.

Parce que tu avais sélectionné B !?

Bonjour,

Dans l'exemple que j'envoie par imprim écran, on vois bien que les X commencent sur la case date clôture. (case C)

a

Je souhaite que cela commence sur case D (1).

Je ne comprend plus Voici le code utilisé :

Sub Cocher()
    Dim x%, y%
    With ActiveCell
        x = .Row: y = .Column
    End With
    ActiveSheet.Range(Cells(x, 4), Cells(x, y)).Value = "X"
End Sub

Cordialement.


Problème réglé... Excuse moi je me suis trompé, le bon macro n'était pas affecté à la raccourci utilisé.

Je te remercie mon amis !

Passe une bonne journée !

Bonne continuation.

Rechercher des sujets similaires à "vba cocher lignes"