Forum > Visual Basic 6
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question' Dans l'éditeur VB, ajoutez une référence à "Microsoft Form 2.0 Object Library." ' Menu Outils --> Références Dim MyData As New MSForms.DataObject Dim sTemp As String Dim aLines() As String Dim NbLines As Long Dim aCols() As String Dim NbCols As Long Dim oStartRange As Range Dim r As Long Dim t As Long ' Récupère le texte du presse papier MyData.GetFromClipboard ' Risuqe d'erreur si le Clipboard est vide On Error Resume Next sTemp = MyData.GetText() r = Err.Number On Error GoTo 0 If r = 0 Then ' Ok ' Supprime l'éventuel vbCrLf en fin de chaine If Right$(sTemp, Len(vbCrLf)) = vbCrLf Then sTemp = Left$(sTemp, Len(sTemp) - Len(vbCrLf)) End If ' Chaque ligne est séparée par un retour chariot aLines = Split(sTemp, vbCrLf) ' on a donc le nombre de lignes (base 0) NbLines = UBound(aLines) ' Récupère chaque colonne séparées par des tabulations (de la première ligne) aCols = Split(aLines(0), vbTab) ' on a donc le nbr de colonnes (base 0) NbCols = UBound(aCols) ' Traitement des données Set oStartRange = ActiveSheet.Range("A1") If NbLines > 0 Or NbCols > 0 Then ' Nettoyage avant écriture ActiveSheet.Range(oStartRange, oStartRange.Offset(NbLines, NbCols)).ClearContents ' Ecriture des données For r = 0 To NbLines aCols = Split(aLines(r), vbTab) For t = 0 To NbCols oStartRange.Offset(r, t).Value = aCols(t) Next t Next r Else ' Pas de lignes ni colonnes oStartRange.Value = sTemp End If Else Debug.Print "/!\ Pas de texte dans le presse-papier" End If