Problème Formulaire Excel/VBA - Range OptionButton

franckyonfire

XLDnaute Nouveau
Bonsoir à tous,

Et ben voilà... Je craque et finis par venir vous demander vos lumières afin de m'éclairer un peu (ce n’est pas faute de m'être acharné, promis).
Bon, je vais vous expliquer le projet/chalenge que je me suis fixé :
Dans le cadre de mon boulot j’ai commencé à faire un fichier Excel qui sert de journal d’archive des attributions (mais aussi les modifications et suppressions de badge).
Très vite j’ai compris que le langage VBA me permettrait d’avoir une interface beaucoup plus chaleureuse et intuitive, seul problème, et pas le moindre… J’avais jamais fait Alt+F11 (ou alors je l’avais pas fait exprès ^^ )
J’ai donc pas mal trainé sur les forums que je trouvais et j’ai réussi à obtenir ceci.


usf.jpg

JOURNAL.jpg

code.jpg

Le principe est simple on remplie le formulaire et les données sont transférées vers l’onglet « Journal » . Tout fonctionne pour les zones de textes mais pour la sélection par OptionButton, c’est un peu moins simple, pas moyen de transférer les infos dans la colonne « L » avec le décalage automatique. Voici un extrait du code pour cette zone :

Code:
Private Sub Valider_Click()
Module2.transfertData


Sheets("Journal").Select


Range(Range("L2"), Range("L65000").End(xlUp)).Offset(1, 0).Interior.ColorIndex = 0



If Creation = True Then
ActiveCell = "Création"
Else
If Perte = True Then
ActiveCell = "Perte"
Else
If NewProfil = True Then
ActiveCell = "Attribution nouveau profil"
Else
If Supprimer = True Then
ActiveCell = "Suppression"
End If
End If
End If
End If
Unload UserForm1
End Sub

Vu que c’est vraiment de la bidouille et que je découvre au fur et à mesure, c’est pas simple.
Et sans vouloir abuser de votre gentillesse ^^ » un 2ème point ou je bloque, c’est avec les correspondances de profils, j’aurai souhaité que lorsque une sélection a été faite manuellement dans les listes déroulantes « Profil », la correspondance s’affiche automatiquement dans le Userform. Pour le moment je contourne le problème par la formule suivante
Code:
=SI(ESTNA(G39);"";SI(ESTVIDE(G39);"";RECHERCHEV(G39; Code!$C$2:$D$10;2;0)))
Par avance un grand merci à vous pour vos explications et/ou idées
 

Pièces jointes

  • usf.jpg
    usf.jpg
    47.1 KB · Affichages: 2 334
  • usf.jpg
    usf.jpg
    47.1 KB · Affichages: 2 294
  • code.jpg
    code.jpg
    88.2 KB · Affichages: 632
  • code.jpg
    code.jpg
    88.2 KB · Affichages: 648
  • Journal activité badges.xlsm
    105.9 KB · Affichages: 327
  • Journal activité badges.xlsm
    105.9 KB · Affichages: 417
  • Journal activité badges.xlsm
    105.9 KB · Affichages: 430

joss56

XLDnaute Accro
Re : Problème Formulaire Excel/VBA - Range OptionButton

Bonjour,

Voici une possibilité pour la correspondance des profils:
Code:
Private Sub ListeOBM_Change()

TxtOBM = Sheets("Code").Cells(ListeOBM.ListIndex + 2, 4)

End Sub
Code:
Private Sub ListeSesame_Change()

TxtSesame = Sheets("code").Cells(ListeSesame.ListIndex + 2, 6)

End Sub

La suite dans quelques instants...
Jocelyn
 

joss56

XLDnaute Accro
Re : Problème Formulaire Excel/VBA - Range OptionButton

Re,

Pour les OptionButton : dans le cadre "Etat", j'ajouterai un label (propriété invisible=true) dans lequel je récupère la propriété Caption de l'optionbutton cliqué que je reporte dans la colonne "L"

A+
Jocelyn
 

franckyonfire

XLDnaute Nouveau
Re : Problème Formulaire Excel/VBA - Range OptionButton

Alors Là, chapeau bas Jocelyn :) Pour Les correspondances ça marche nickel, un grand merci à toi.
En revanche, je ne comprends pas bien la procédure pour le cadre "Etat"
Chacun de mes OptionButtons a déjà une valeur enregistré dans caption et la seule lors du range, je me retrouve avec Vrai ou Faux dans ma colonne L :confused:
 
Dernière édition:

franckyonfire

XLDnaute Nouveau
Re : Problème Formulaire Excel/VBA - Range OptionButton

Youpi !!! j'ai trouvé la solution. Je place le code si cela peut servir à d'autres.
Le problème était le suivant, j'avais mis dans les propriétés de chaques OptionButton (Name) un nom (Creation, Perte, NewProfil et Supprimer) ATTENTION, je ne parle pas de la 7ème option "Caption", elle au contraire doit avoir le nom qui sera transféré dans la page Excel selectionnée. Bref, voici le code:
Code:
Private Sub Valider_Click()
Dim T, ctrl, q
Dim Etat

For i = 1 To 3
T = T + Controls("Etat" & i).Value
Next i
If T = 0 Then
MsgBox ("vous devez choisir un état.")
Exit Sub
End If

For Each q In UserForm1.Etat.Controls
If q.Value = True Then Etat = Trim(q.Caption)
Next q

num = Sheets("Journal").Range("A65536").End(xlUp).Row + 1

Range("L" & num).Value = Etat
J'espère que ceci aidera quelqu'un à l'occasion :)
Et encore une fois, merci Joss56
 

Discussions similaires

Réponses
3
Affichages
190

Statistiques des forums

Discussions
311 727
Messages
2 081 962
Membres
101 852
dernier inscrit
dthi16088