Autofill avec une plage

Bonjour,

J'ai un souci avec la fonction autofill. Voilà je veux faire un autofill d'une plage qui s'étend d'une colonne à la dernière cellule non vide de la ligne concernée.

Voici un exemple du bout de code qui ne prend que la cellule de la colonne C. Je voudrai que dans la dernière ligne Range du code, je veux remplacer le "C par la plage que j'ai spécifié un peu plus haut.

Merci d'avance pour vos réponses.

With Ws
        'Je détermine le numéro de la dernière ligne renseignée dans la colonne B
        DerLigB = .Range("B" & .Rows.Count).End(xlUp).Row
        'Je détermine le numéro de la dernière ligne renseignée dans la colonne C
        DerLigC = .Range("C" & .Rows.Count).End(xlUp).Row
        'J'effectue la recopie incrémentée dans la colonne C
        'condition pour éviter les erreurs lorsque le numéro de B et C est identique
        .Range("C" & DerLigC).AutoFill Destination:=.Range(.Range("C" & DerLigC), .Range("C" & DerLigB))
        End If

End With

Bonjour,

col = 3
With Ws
        'Je détermine le numéro de la dernière ligne renseignée dans la colonne B
       DerLigB = .Cells(Rows.Count, 2).End(xlUp).Row
        'Je détermine le numéro de la dernière ligne renseignée dans la colonne C
       DerLigC = .Cells(Rows.Count, col).End(xlUp).Row
        'J'effectue la recopie incrémentée dans la colonne C
       'condition pour éviter les erreurs lorsque le numéro de B et C est identique
       .Cells(DerLigC, col).AutoFill Destination:=.Range(.Cells(DerLigC, col), .Cells(DerLigB, col))

End With

Merci sabV pour ta réponse mais ça ne marche pas

Je ne comprend pas l'usage de ta variable col et de ta déclaration de DerLigB.

Bonjour,

la syntaxe pour Cells est Cells(ligne, colonne)

par exemple Range("B4") peut s'écrire Cells(4, 2)

21dbr07-test.xlsm (14.80 Ko)

Supposons alors qu'il y ait plus d'une colonne (nombre variable).

Tu peux le constater dans le fichier joint.

17dbr07-test.xlsm (14.42 Ko)

Bonjour,

Sub Macro1()
Set Ws = ActiveSheet
col = 3
With Ws
 DerCol = .Cells(1, Columns.Count).End(xlToLeft).Column  'dernière colonne ligne 1
 DerLigB = .Cells(Rows.Count, 2).End(xlUp).Row 'dernière ligne colonne B
 DerLigC = .Cells(Rows.Count, col).End(xlUp).Row  'dernière ligne colonne C
 .Range(.Cells(DerLigC, col), .Cells(DerLigC, DerCol)).AutoFill Destination:=.Range(.Cells(DerLigC, col), .Cells(DerLigB, DerCol))
End With
End Sub
11dbr07-test2.xlsm (14.29 Ko)

autre possibilité si tu ne connais pas la colonnes (entre C et Col(x)) qui a le moins de cellules renseignées,

Sub Macro1()
Set Ws = ActiveSheet
col = 3 'colonne C
With Ws
 DerLigB = .Cells(Rows.Count, 2).End(xlUp).Row 'dernière ligne colonne B
 DerCol = .Cells(1, Columns.Count).End(xlToLeft).Column  'dernière colonne ligne 1
 DerLigC = Range(Cells(1, 3), Cells(DerLigB, DerCol)).SpecialCells(xlCellTypeBlanks).Rows(1).Row - 1 'dernière ligne colonne x variable

 MsgBox .Range(.Cells(DerLigC, col), .Cells(DerLigB, DerCol)).Address(0, 0)

' .Range(.Cells(DerLigC, col), .Cells(DerLigC, DerCol)).AutoFill Destination:=.Range(.Cells(DerLigC, col), .Cells(DerLigB, DerCol))
End With
End Sub
20dbr07-test3.xlsm (15.79 Ko)

Salut sabV,

Merci pour ta réponse en effet ça résout mon problème.

Bonne journée.


Rechercher des sujets similaires à "autofill plage"