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
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)