Modifier Macro zone d'action

Bonjour tout le monde

j'aimerais un petit coup de pouce pour ma macro.

Ma macro a pour but d'ouvrir une fenetre, qui me permet de choisir un fichier CSV, qui ensuite alimente un tableau dans mon classeur.

La macro repère la lettre qui équivaut à une ligne, et le numéro de colonne. Puis elle copie les 3 données du fichiers CSV : Nom Désignation et Couleur. Les autres cellules vident sont remplies par WAIT du moins pour le nom et la désignation.

Dans mon fichier de test, mon tableau commencait en A1. Tout fonctionnait bien.

Mais mon tableau réel commence a A9 (voir fichier joint)

comment adapter ma macro pour qu'elle débute en A9 ?

mon tableau complet va de A9 à N32 (soit 12 colonnes)

il faudrait que ma macro s'arrete en N32.

ma macro consiste à insérer un fichier CSV qui alimente un tableau

et elle affiche WAIT dans les cellules vides (les 2 premiers de chaque) cela fonctionne parfaitement.

Je bloque juste sur l'ajustement à un tableau placé autrement.

Sub ImprotCSV()
Dim table() As String
Dim lig As Integer
Dim cl As Range
Dim off1 As Integer
Dim off2 As Integer

With Application.FileDialog(msoFileDialogFilePicker)
    .InitialFileName = "C:\"
    .Show
    If .SelectedItems.Count > 0 Then Workbooks.Open (.SelectedItems(1))
End With

With ActiveWorkbook.Worksheets(1)
    lig = .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
    ReDim table(1 To 5, 1 To lig)
    For i = 0 To lig - 1
        Set cl = .Range("A1").Offset(i, 0)
        off1 = InStr(cl.Value, ";")
        table(1, i + 1) = Left(cl.Value, off1 - 1)

        For j = 2 To 4
            off2 = InStr(off1 + 1, cl.Value, ";")
            table(j, i + 1) = Mid(cl.Value, off1 + 1, off2 - off1 - 1)
            off1 = off2
        Next j

        table(5, i + 1) = Right(cl.Value, Len(cl.Value) - off1)
    Next i
End With

ActiveWorkbook.Close

With Worksheets("Data")
    For i = 1 To lig
        Set cl = .Cells(.Columns(1).Find(table(1, i), LookIn:=xlFormulas, lookat:=xlWhole).Row - 1, .Rows(1).Find(table(2, i), LookIn:=xlFormulas, lookat:=xlWhole).Column)
        For j = 0 To 2
            cl.Offset(j, 0) = table(3 + j, i)
        Next j
    Next i

    Set cl = .Cells(.Columns(1).Find("A", LookIn:=xlFormulas, lookat:=xlWhole).Row - 1, .Rows(1).Find(1, LookIn:=xlFormulas, lookat:=xlWhole).Column)
    For i = 0 To .Rows(1).Find("*", , , , xlByColumns, xlPrevious).Columns - 1
        For j = 0 To .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row - 1
            If j + 1 <> 3 * Int((j + 1) / 3) Then
                If cl.Offset(j, i) = "" Then
                    cl.Offset(j, i) = "WAIT"
                End If
            End If
        Next j
    Next i

End With

End Sub

Merci d'avance à qui voudra bien m'aider

9fichiers-a-importer.csv (93.00 Octets)

Bonjour,

Essaie comme cela

A+

Bonjour frangy,

cela marche parfaitement. Merci beaucoup

Rechercher des sujets similaires à "modifier macro zone action"