** Code VBA qui convertit le contenu de la sélection sur Excel en ** code d'initialisation de liste Python et le copie dans le presse-papiers. Générez un programme Python avec la première ligne de la sélection comme ** nom de variable ** et les lignes suivantes comme ** éléments ** de la liste, comme illustré dans la figure suivante.
Comment copier du texte dans le presse-papiers est présenté dans "Comment copier une chaîne VBA non défaillante dans le presse-papiers" J'ai utilisé le code tel quel.
Sélection(Range)Vers une liste Python (code d'initialisation)
Sub Range2PythonList()
If TypeName(Selection) <> "Range" Then
Exit Sub
End If
sCol = Selection(1).Column 'Colonne de début de plage
eCol = Selection(Selection.Count).Column 'Colonne de fin de plage
sRow = Selection(1).Row 'Ligne de départ de la plage
eRow = Selection(Selection.Count).Row 'Ligne de fin de gamme
If sRow = eRow Then
Exit Sub
End If
pCode = ""
For c = sCol To eCol
pCode = pCode & Cells(sRow, c).Value & "=["
For r = sRow + 1 To eRow
v = Cells(r, c).Value
Select Case TypeName(v)
Case "String"
pCode = pCode & "'" & v & "'"
Case "Empty", "Null", "Nothing"
pCode = pCode & "None"
Case "Date"
pCode = pCode & "datetime.datetime(" _
& Year(v) & "," _
& Month(v) & "," _
& Day(v) & "," _
& Hour(v) & "," _
& Minute(v) & "," _
& Second(v) & ")"
Case Else
pCode = pCode & v
End Select
pCode = pCode & ","
Next r
pCode = Left(pCode, Len(pCode) - 1) & "]" & vbCrLf
Next c
Debug.Print pCode
SetClip (pCode)
End Sub
'Copier le texte dans le clip
' https://info-biz.club/windows/vba/vba-set-clipboard.html
Sub SetClip(S As String)
With CreateObject("Forms.TextBox.1")
.MultiLine = True
.Text = S
.SelStart = 0
.SelLength = .TextLength
.Copy
End With
End Sub
Démarrez Excel, démarrez l'éditeur de code VBA avec "** Alt + F11 **" et sélectionnez le classeur cible en double-cliquant.
Une fenêtre pour écrire le code VBA s'ouvrira, alors copiez et collez le code ci-dessus.
Revenez dans Excel, ** sélectionnez une plage, puis ** lancez la macro avec "** Alt + F8 **" et sélectionnez "ThisWorkbook.Range2PythonList" pour l'exécuter.
Le contenu de la sélection est converti en code d'initialisation de liste Python et copié dans le presse-papiers. Après cela, collez-le dans un éditeur approprié et utilisez-le (ajoutez ʻimport datetime` si nécessaire).