Parcourir une ligne

IenchGaleu

XLDnaute Nouveau
Bonjour à tous!

Voila, je souhaite comprendre comment parcourir des lignes de façon un peu plus optimisé qu'aujourd'hui.

Par exemple voici ce code:
Code:
Function WriteLigne(ByVal Name As String, ByVal Ligne As Integer, ByRef Place As Integer) As Integer

    Dim Plage1 As String
    Dim Plage2 As String
    Dim Size As Integer

    Size = Application.CountA(Range("1:1"))
    For x = 1 To Size
        Plage1 = Chr(65 + (x - 1)) & Place
        Plage2 = Chr(65 + (x - 1)) & Ligne
        Workbooks("Repertoire.xlsm").Worksheets("Feuil1").Range(Plage1) = Range(Plage2)
    Next x

End Function

Comme vous pouvez voir, je parcoure la ligne en incrémentant la valeur de la lettre (A/B/C...). Le problème est que si je devais arrivé à "AA", cela ne fonctionnerai plus, et la gestion de ces cas est un poile trop compliqué.
Ma question est donc, comment faites vous pour parcourir une ligne exactement comme dans le code que je vous est montré mais de façon plus professionnelle.

Merci d'avance pour votre aide!
 

STephane

XLDnaute Occasionnel
Re : Parcourir une ligne

bonjour,

Tu peux boucler sur des collections de lignes, colonnes ou cellules, objets, en utilisant les mots clés "For Each ... Next".

La boucle ci-dessous copie systématiquement chaque cellule de la ligne "LigneSource" vers la cellule correspondante de la ligne "PlaceCible".

Function WriteLigne_XLD(ByVal Name As String, ByVal LigneSource As Integer, ByRef PlaceCible As Integer) As Integer
0: ''http://www.excel-downloads.com/forum/196941-parcourir-une-ligne.html
Dim WB As Workbook
Dim WSH1 As Worksheet
Dim Plage1 As String
Dim Plage2 As String
Dim Size As Integer
Dim CL As Range
Application.ScreenUpdating = False

'Set WB = Workbooks("Repertoire.xlsm")
Set WB = ActiveWorkbook
Set WSH1 = WB.Worksheets("Sheet1")
With WSH1
' boucle sur la ligne source au sein de la plage de cellule utilisée (UsedRange) dans la feuille WSH1
For Each CL In .UsedRange.Rows(LigneSource).Cells
.UsedRange.Rows(PlaceCible).Cells.Item(CL.Column) = CL.Value
Next CL
End With
End Function

HTH
 

Discussions similaires

Réponses
2
Affichages
209

Statistiques des forums

Discussions
312 938
Messages
2 093 771
Membres
105 816
dernier inscrit
TASTET B