Utilisation Me.controls

Bonjour,

j'ai récupéré et modifié le code ci dessous pour lire la première ligne de l'onglet, qui contient le nom de toutes les box de mon formulaire. Le but étant de pouvoir insérer une colonne, sans avoir à renuméroter les box pour coller au fichier.

J'ai fini par revenir à ma version initiale, en récupérant le nom excat défini dans l'userform.

Si qq'un pouvait m'aider à franchir le dernier pas....

Merci

Frédéric

Private Sub CreerAna()
Dim i As Integer
Dim C As Integer
Dim SelectAna As String
Dim Ctrl As Control

If CDV = True Then
SelectAna = "DV"
Else
SelectAna = "OUI"
End If

WsBase.Cells(Ligne, 2) = NumLT
WsBase.Cells(Ligne, 3) = DateLimite
'For Each Ctrl In Me.Controls

    For C = 4 To 8 'col - 3
'    Set Ctrl = Controls(Range("B3, G3").Select) '==> Message erreur
'
'        If TypeOf Ctrl Is MSForms.TextBox Then
'        'If TypeName(Ctrl) = "TextBox" Then
'            Cells(Ligne, C) = Ctrl
'        ElseIf TypeOf Ctrl Is MSForms.ComboBox Then
'        'ElseIf TypeName(Ctrl) = "ComboBox" Then
'            Cells(Ligne, C) = Ctrl
'        ElseIf TypeOf Ctrl Is MSForms.CheckBox Then
'        'ElseIf TypeName(Ctrl) = "CheckBox" Then
'            Cells(Ligne, C) = IIf(Ctrl, SelectAna, "")
'        End If

    WsBase.Cells(Ligne, C).Value = IIf(Me.Controls("CheckBox" & C - 3) = True, SelectAna, "")
    'WsBase.Cells(Ligne, C).Value = IIf(Me.Controls(WsBase.Cells(1, C)) = True, SelectAna, "")

        If Cells(Ligne, C) = "OUI" Then
        WsBase.Cells(Ligne, C).Interior.Color = RGB(255, 51, 0)
        WsBase.Cells(Ligne, C).Font.Color = RGB(0, 0, 0)
        End If

    Next C

'Next Ctrl

End Sub

Bonjour

Ton fichier en y indiquant ce que tu veux faire faciliterait grandement la compréhension de ton problème

Bonjour

voici donc le fichier.

Je souhaite écrire les données du formulaire en reprenant dans un controle box la variable de la premiere cellule de la colonne, qui n'est autre que le nom de la box du formulaire.

Ce bout de code se trouve dans l'userform 'Urgent selection'

Il existe dans le mm UF une sub nettoyage sur le mm principe qui fonctionne.

Merci pour ton aide

Frederic

45v4.zip (66.94 Ko)

Bonsoir

Si j'ai bien compris (tu y étais presque)

WsBase.Cells(Ligne, C).Value = IIf(Me.Controls(WsBase.Cells(1, C).Value) = True, SelectAna, "")

Bonjour

oui j'y étais presque, mais j'ai un message d'erreur sur la ligne

Set Ctrl = Controls(Range("B3, G3").Select)

, d'où mon changement de cap ...

Je pense que tu vas trouver très vite toi, moi j'ai beaucoup de mal et surtout peu de temps.

A+

frederic

Bonjour

Pourquoi tu veux utiliser cette ligne ?

Ta macro

Private Sub CreerAna()
' coche les cellules excel
Dim C As Integer
Dim SelectAna As String

  If CDV = True Then
    SelectAna = "DV"
  Else
    SelectAna = "OUI"
  End If

  WsBase.Cells(Ligne, 2) = NumLT
  WsBase.Cells(Ligne, 3) = DateLimite

  For C = 4 To 8
    WsBase.Cells(Ligne, C).Value = IIf(Me.Controls(WsBase.Cells(1, C).Value) = True, SelectAna, "")
    If Cells(Ligne, C) = "OUI" Then
      WsBase.Cells(Ligne, C).Interior.Color = RGB(255, 51, 0)
      WsBase.Cells(Ligne, C).Font.Color = RGB(0, 0, 0)
    ElseIf Cells(Ligne, C) = "DV" Then
      WsBase.Cells(Ligne, C).Interior.Color = RGB(216, 216, 216)
    End If
  Next C
End Sub

Bonjour à tous

Bonjour Banzaï

Pourquoi tu veux utiliser cette ligne ?

... Parce que en formation accélérée, on m'a expliqué ainsi!

L'avantage de ton code, c'est qu'il marche aussi et que je le comprend. Sans doute aurais pu trouver seul .... Il y a tellement de chose à découvrir dans ce code VBA.

Je ne peux que te remercier à nouveau Banzaï!

A bientôt sans doute ....

Frédéric

Rechercher des sujets similaires à "utilisation controls"