Посмотрите переменную заголовка UserForm в CSV, чтобы получить другие значения - PullRequest
0 голосов
/ 10 апреля 2019

Мне нужен макрос Word, который будет вставлять динамические подписи (до трех) и никогда ранее не выполнял VBA (больше, чем парень из Powershell ...).

Для этого я создалпользовательская форма в интерфейсе «разработчика» с 3 фреймами и множеством переключателей, содержащих в качестве подписи имена людей, которые смогут подписать.

Поскольку существует 60 человек (или больше), которые смогутчтобы подписать, я думал о том, чтобы иметь CSV-файл, содержащий их «Имя, Отдел, Функция».

Моя проблема в том, что я понятия не имею, как читать CSV, сравните его с моим заголовком (давайтепроизнесите Caption = "Jon Swiss") и инициализируйте переменную для трех других значений.

Я пометил свой документ некоторыми закладками (работает только с заголовком).

Я незнаю, если вам нужен сценарий, который я сделал (ничего о CSV - извините ...)

Private Sub RHBtn_Accepter_Click_Click()
'Initialisation
Dim i As Integer
'***
'       Signature 1
'*** 
'Pour chaque valeur possible
  For i = 1 To Me.Controls.Count
    'Si i plus petit que le nombre de valeur définie
    If i < Me.Controls.Count Then
      Set MyControl = Me.Controls.Item(i)
      'Si control dispose du tag RHSign1
      If MyControl.Tag = "RHSign1" Then
         'Si une valeur est activée
         If MyControl.Value = True Then
            'Mise en variable du nom en Sign1
            RHSignature1 = MyControl.Caption
            Exit For
         End If
      End If
    End If
  Next i

'***
'       Gettings CSV Value
'***

'***
'       Tagging the bookmarks
'***
           If ActiveDocument.Bookmarks.Exists("RhSignet1") = True Then
              Selection.GoTo What:=wdGoToBookmark, Name:="RhSignet1"
              Selection.TypeText Text:=RHSignature1
           End If
End Sub

1 Ответ

0 голосов
/ 12 апреля 2019

Спасибо за вашу помощь.

Я нашел способ с CSV.

  'Répertoire
directory = "H:\@SCRIPTS\VBA_MacroWord_DigitRH\"
FileName = "BaseSignatureTest.csv"
'Ouverture de la connexion CSV
Set rs = CreateObject("ADODB.Recordset")
strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & directory & ";" _
& "Extended Properties=""text;HDR=Yes;FMT=Delimited"";"
strSQL = "SELECT * FROM " & FileName
rs.Open strSQL, strcon, 3, 3
rs.MoveFirst

Do
   col1 = rs("Nom")
   col2 = rs("Fonction")
   col3 = rs("DPT")
   col4 = rs("Signature")
   rs.MoveNext

   'Si une valeur a été trouvée et qu'elle corresponds, définition des valeurs
   If col1 = RHSignature2 Then
   MsgBox "Signature2"
   MsgBox col1
   MsgBox col2
   MsgBox col3
   MsgBox col4

Кажется, работает. Может быть, есть лучший способ. Но спасибо всем, что заняло время, чтобы прочитать меня. Хорошей недели, Jon

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...