Bug dans mon code

Bonjour le forum,

Je suis nouveau dans le monde du vba et je découvre cet outils très intéressant.

Je travail sur un fichier Excel ou je met des données des fournisseurs et le code me met le mail, le téléphone et le nom et prénom de la personne ( tout est dans le fichier joint).

le problème est que ce code marche pour 20 à 30 ligne mais il beug pour les 400 lignes que j'ai ( les lignes vides dans excel correspondent au cas ou j'ai pas de données sur le fournisseur{pour information}).

'

Option Explicit
Sub Couper()
Dim a(1 To 400, 1 To 4)
Dim Tableau
For Z = 2 To 400
   Tableau = Split(Cells(Z, 1), Chr(10))
   For i = 0 To UBound(Tableau)
      a(Z, 1) = Tableau(0)
      a(Z, 2) = Tableau(1)
      a(Z, 3) = a(Z, 2) & Chr(10) & Tableau(2)
      a(Z, 4) = Tableau(3)
   Next i
Next Z
[B1].Resize(UBound(a), 4) = a
End Sub

Pourriez vous m'aidez svp ?

Cordialement

6exemple-5-1.xlsm (18.94 Ko)

Bonjour,

Essaie ainsi :

Sub Couper()
Dim N As Long, I As Long, k As Long
Dim tbl, arr(), x
    With ActiveSheet
        N = .Cells(.Rows.Count, 1).End(xlUp).Row
        tbl = .Cells(1).Resize(N - 1)
        For I = 2 To UBound(tbl)
            If tbl(I, 1) <> vbNullString Then
                x = Split(Trim(tbl(I, 1)), Chr(10))
                ReDim Preserve arr(4, k + 1)
                arr(0, k) = x(0)
                arr(1, k) = x(1)
                arr(2, k) = x(2)
                arr(3, k) = x(3)
                k = k + 1
            End If
        Next I
        .Cells(2, 3).Resize(k, 4).Value = Application.Transpose(arr)
    End With
End Sub

Bonjour,

J'ai toujours le message :

"erreur d'execution 9"

L'indice n'appartient pas à la selection

Cordialement

Re,

Je n'ai pas d'erreur dans le fichier joint.

Cdlt.

Rechercher des sujets similaires à "bug mon code"