Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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!
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
385
Réponses
7
Affichages
135
Réponses
10
Affichages
530
Retour