BOUCLE VBA

Bonjour,

Je vous explique la situation, j'ai un fichier Excel que j'importe dans un autre grâce au VBA(cela fonctionne très bien), cependant j'aimerai réaliser une boucle pour qu'il ne copie pas seulement la première ligne mais bien toute les lignes et colonne de mon fichier source.

Voici le code actuel :

Option Explicit

Public g_master_Workbook As Workbook

Public g_valeur_Workbook As Workbook

Sub SelectvaleurFile()

Dim v_stfile As String

'Intialisation

Range("K2").Value = ""

'Ouverture de la fenetre de selection de fichier

v_stfile = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*", , "Selectionner le fichier d'export du design")

'Si l'utilisateur n'a pas appuyé sur annulation alors on mets la valeur dans la cellule k2

If v_stfile <> "Faux" Then

Range("K2").Value = v_stfile

End If

End Sub

Sub FillFieldWithExternalData()

Dim v_valeur_workbook As Workbook

Dim v_Niv As String

Dim v_KITL0 As String

Dim v_KITL As String

Dim v_LITM As String

Dim v_Description As String

Dim v_Description2 As String

Dim v_Quantity As String

Application.ScreenUpdating = False

Set g_master_Workbook = ActiveWorkbook

If Range("K2").Value <> "" Then

' Ouverture du fichier de design

Set v_valeur_workbook = Workbooks.Open(Range("K2").Value)

' Recuperation des valeurs nécessaire

v_Niv = v_valeur_workbook.Worksheets("TAILLE 1").Range("A2").Value

v_KITL0 = v_valeur_workbook.Worksheets("TAILLE 1").Range("B2").Value

v_KITL = v_valeur_workbook.Worksheets("TAILLE 1").Range("C2").Value

v_LITM = v_valeur_workbook.Worksheets("TAILLE 1").Range("D2").Value

v_Description = v_valeur_workbook.Worksheets("TAILLE 1").Range("E2").Value

v_Description2 = v_valeur_workbook.Worksheets("TAILLE 1").Range("F2").Value

v_Quantity = v_valeur_workbook.Worksheets("TAILLE 1").Range("G2").Value

'Fermeture du fichier de valeur

v_valeur_workbook.Close

'Ecriture des valeurs de valeur

g_master_Workbook.Worksheets("nomenclature").Range("A2").Value = v_Niv

g_master_Workbook.Worksheets("nomenclature").Range("B2").Value = v_KITL0

g_master_Workbook.Worksheets("nomenclature").Range("C2").Value = v_KITL

g_master_Workbook.Worksheets("nomenclature").Range("D2").Value = v_LITM

g_master_Workbook.Worksheets("nomenclature").Range("E2").Value = v_Description

g_master_Workbook.Worksheets("nomenclature").Range("F2").Value = v_Description2

g_master_Workbook.Worksheets("nomenclature").Range("G2").Value = v_Quantity

Application.CutCopyMode = True

End If

End Sub

Bonjour et bienvenue sur le forum

Remplace la partie correspondante par ça :

 ' Ouverture du fichier de design
 Set v_valeur_workbook = Workbooks.Open(Range("K2").Value)

 ' Recuperation des valeurs nécessaire
 ActiveSheet.Range("A1").CurrentRegion.Offset(1, 0).Copy
 g_master_Workbook.Worksheets("nomenclature").Range("A2").PasteSpecial xlPasteValues
 v_valeur_workbook.Close
 Range("A1").Select
 'Fermeture du fichier de valeur
 '...

'Le reste inchangé

Résultat ?

Bye !

Sa marche, cependant sa ne me copie pas la colonne 1, sa commence à partir de B1


Je n'ai rien dit c'est moi qui a fais une modification, j'ai rectifié et sa fonctionne niquel merci !

Bonjour,

[Ah ! Pas vu réponse de Gmb : Salut !]

Sub FillFieldWithExternalData()
    Dim v_stfile As String, v_valeur, n%
    v_stfile = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*", , _
     "Selectionner le fichier d'export du design")
    If v_stfile = "Faux" Then Exit Sub
    Application.ScreenUpdating = False
    With Workbooks.Open(v_stfile)
        With .Worksheets("TAILLE 1")
            n = .Range("A" & .Rows.Count).End(xlUp).Row
            v_valeur = .Range("A2:G" & n).Value
        End With
        .Close False
    End With
    With ThisWorkbook.Worksheets("nomenclature")
        .Range("A1").CurrentRegion.Offset(1).ClearContents
        .Range("A2").Resize(n - 1, 7).Value = v_valeur
    End With
End Sub

Procédure pour remplacer TOUT le code cité...

Cordialement.

Bonjour,

Sa marche aussi même très bien ! Merci beaucoup sa raccourci de beaucoup mon code c'est plutôt cool merci !


est-il possible de faire sa ? A la place de Taille 1 j'aimerai qu'il me copie peut-importe le nom de la feuille (ici elle s'appelle taille1)

Rechercher des sujets similaires à "boucle vba"