Je m'arrache les cheveux avec des ChekBox

Bonsoir à tous,

deux heures que je cherche, et je n'arrive pas à faire écrire à mes txt_Tireur, txt_Milieu et txt_Pointeur la lettre "X" dans les colonnes N, O et P de la feuille "Membres"...GRRRRrrrrr!!

Auriez vous la solution ?

Merci à tous

Mon fichier joint :

Bonsoir,

Qu'est-ce que ça a de compliqué d'affecter "X" aux éléments d'un tableau selon la valeur de CheckBox, puis d'affecter le tableau aux cellules ?

C'est ce que je ferais !

En fait pas tout à fait, j'affecterais toute la ligne en une seule fois, après avoir servi un tableau à partir des contrôles (et même procédure pour ajout ou modif).

Cordialement.

Bonjour,

Sinon si c'est juste pour les cheveux :

epil

Merci MFerrand et galopin01,

galopin01 :

T'as l'équivalent pour la mémoire...?

MFerrand :

j'affecterais toute la ligne en une seule fois, après avoir servi un tableau à partir des contrôles

Mes petits moyens en VBA, me font défaut, Je n'ai pas su faire ce que tu préconise, un petit exemple ne serait pas superflux pour mon neurone rescapé....!

Merci à tous les deux d'être là....

PS: Je vais bien chercher la cellule concernée, mais quel que soit le code que j'essaie, "VRAI" ou "Faux" s'inscrivent au lieu de "X"

A vous lire...

Depuis le temps, tu devrais !...

Pour reprendre ton code (et sans valider la non qualification d'objet (Range tout nu !!! Oh ! )

    Range("N" & iLig).Value = IIf(chk_Tireur.Value, "X", "")

ce qui n'est qu'une des multiples façons de faire.

Bonjour MFerrand,

c'est vrai,

Depuis le temps, tu devrais !...

, mais j'ai marqué une pause VBA pour essayer d'apprendre un peut Excel,

Pour avoir une meilleure vue d'ensemble.....

J'ai ingurgité des tutos jusqu'à plus soif, et de manière empirique, du coup, j'ai les idées qui ont encore du mal à se remettre en place...

Je suis dur à comprendre, mais, je m'améliore gràce à toi et tous les gens du forum...

J'ai essayé cette ligne de code un peut avant de lire ta réponse, elle n'avait pas fonctionné.

J'ai copié et collé ta ligne dans mon code, 1 fois dans le code du bouton "Ajouter", puis dans le private sub de la case à cocher.

Et j'ai toujours le même problème...

Je n'y comprend plus rien...

si tu pouvais regarder mon code et me dire ou je pêche

Merci de ton savoir.

Mon fichier joint :

Bonjour à tous,

Espérant avoir bien compris ...

 With Sheets("Membres")
      ' Range("A65536") pour garder la compatibilité avec les anciennes versions d'Excel
      ' pour placer le nouvel enregistrement à la 1ère ligne non vide
      iLig = .Range("B65536").End(xlUp).Row + 1

      .Range("B" & iLig).Value = txt_Nom.Value
      .Range("C" & iLig).Value = txt_Prenom.Value
      .Range("D" & iLig).Value = txt_TelFix.Value
      .Range("E" & iLig).Value = txt_TelMob.Value
      .Range("F" & iLig).Value = txt_Adresse.Value
      .Range("G" & iLig).Value = cbo_Ville.Value
      .Range("H" & iLig).Value = cbo_CP.Value
      .Range("I" & iLig).Value = txt_Email.Value
      .Range("J" & iLig).Value = txt_Ne_Le.Value
'      .Range("K" & iLig).Value = Opt_Homme.Value Or Opt_Femme.Value
      .Range("L" & iLig).Value = txt_Fede.Value
      .Range("M" & iLig).Value = txt_Club.Value
      .Range("N" & iLig).Value = IIf(chk_Tireur.Value, "X", "")
      .Range("O" & iLig).Value = IIf(chk_Milieu.Value, "X", "")
      .Range("P" & iLig).Value = IIf(chk_Pointeur.Value, "X", "")
End With    

ric

Bonjour

je ne voie pas les points

j'ais déjà fait se programme au moins un an

ses dur dur de comprendre

mes bon voila un Example

 With Feuil4 'Sheets("Membres") mettre le codename
      ' ses Compatible toute versions
      iLig = .Range("B" & Rows.Count).End(xlUp).Row + 1
      ' et pour le X
        .Range("N" & iLig).Value = IIf(chk_Tireur.Value = False, "", "X")

A+

Maurice

Bonjour ric et archer

Archer : En effet tu as déjà travaillé sur ce projet, mais je l'avait laissé en sommeil, pour me consacrer un peu plus à l'étude de VBA et d'Excel.

Aujourd'hui, je le reprend au début, pour voir ce que je suis capable de faire par moi même et connaître les points ou je doit continuer à travailler. Egalement pour essayé de sortir un code propre et conforme aux convention d'écriture.

Je te remercie beaucoup d'être encore là pour nous aider à progresser...

Ric : Ton travail est parfait...

Quel idiot je fais de ne pas avoir pensé à cette solution tout seul...

Merci encore à tous les deux...

Bonjour

il faut mettre le point devant le range car tu a mis un With

voila au + simple

et voir aussi le Id du range(A)

  With Feuil4
    iLig = .Range("B" & Rows.Count).End(xlUp).Row + 1
      .Range("A" & iLig).Value = Application.Max(.Columns(1)) + 1
      .Range("B" & iLig).Value = txt_Nom.Value
      .Range("C" & iLig).Value = txt_Prenom.Value
      .Range("D" & iLig).Value = txt_TelFix.Value
      .Range("E" & iLig).Value = txt_TelMob.Value
      .Range("F" & iLig).Value = txt_Adresse.Value
      .Range("G" & iLig).Value = cbo_Ville.Value
      .Range("H" & iLig).Value = cbo_CP.Value
      .Range("I" & iLig).Value = txt_Email.Value
      .Range("J" & iLig).Value = CDate(txt_Ne_Le.Value)
            If Opt_Homme.Value = True Then
                .Range("K" & iLig).Value = "H"
              Else
                .Range("K" & iLig).Value = "F"
            End If
'      Range("K" & iLig).Value = Opt_Homme.Value Or Opt_Femme.Value
      .Range("L" & iLig).Value = txt_Fede.Value
      .Range("M" & iLig).Value = txt_Club.Value
      .Range("N" & iLig).Value = IIf(chk_Tireur.Value, "X", "")
      .Range("O" & iLig).Value = IIf(chk_Milieu.Value, "X", "")
      .Range("P" & iLig).Value = IIf(chk_Pointeur.Value, "X", "")
   End With

RAZ_Champs

A+

Maurice

Merci archer,

Belle simplification du code, tout le transfert des données dans un seul with...

C'est en fait ce que je cherchais à faire et j'y étais arrivé avec les 2 lignes suivantes :

.Range("K" & iLig).Value = IIf(Opt_Homme.Value, "H", "F")

.Range("K" & iLig).Value = IIf(Opt_Femme.Value, "F", "H")

a la place de ton code :

If Opt_Homme.Value = True Then

.Range("K" & iLig).Value = "H"

Else

.Range("K" & iLig).Value = "F"

End If

qu'est ce que t'en pense ?, une solution est-t'elle meilleur que l'autre, ou y a t'il un inconvénient à utiliser l'une plutôt que l'autre ?

Merci encore pour ta présence...

A te lire.

Bonsoir

si les deux fonctionne tu choisi celui que tu aime je suis pas jaloux HI

dans tout ca pense surtout a mettre les codename a la place des nom des onglets

car si tu change le nom de longlet le codename ne change pas

A+

Maurice

OK archer,

C'est un conseil que je vais m'empresser de suivre...

A plus...

Rechercher des sujets similaires à "arrache cheveux chekbox"