Bonjour,
Je souhaite écrire 1 de la cellule A2 à inconnue.
Exemple : si la colonne B2 est rempli jusqu'à B100, il écrit 1 jusqu'à A100.
La colonne B peut varier, l'idéal c'est que la colonne A s'adapte à la variation.
Par avance, merci pour votre aide.
Cordialement,
Zizou
pour la colonne, c'est facile de voir que colonne n° 2 = colonne B !
pour une colonne loin à droite, je mets : Cells(Rows.Count, "AA")
suite aux 3 points de ton post #6, j'ai modifié le code VBA
de mon post #5 et celui-ci.
VB:
Sub Essai()
Dim lig As Long
lig = Cells(Rows.Count, "B").End(xlUp).Row: If lig = 1 Then Exit Sub
Application.ScreenUpdating = False: [A2].Resize(lig - 1) = 1
End Sub
Il est encore temps de présenter une autre solution :
VB:
Sub Remplir()
With Range("A2:A" & Cells.SpecialCells(xlCellTypeLastCell).Row)
If .Row = 1 Then Exit Sub
.FormulaR1C1 = "=REPT(1,COUNTA(RC[1]))"
.Value = .Value
End With
End Sub
Bonsoir,
Les codes fonctionnent bien mais je n'arrive pas à le mettre en place.
J'ai fait un macro et je cherche à remplacer :
Range("A2").Select
Selection.AutoFill Destination:=Range("A2:A2800")
Range("A2:A2800").Select
Je souhaite que ça part de A2 à X...
Merci beaucoup pour votre aide.
Cordialement,
Zizou
Sub Essai()
Dim lig&: Application.ScreenUpdating = 0
[A2] = 1: [A3] = 2: lig = 2800 'à adapter
[A2:A3].AutoFill Range("A2:A" & lig), 4
End Sub
➯ pour A2:A2800 : nombres de 1 à 2799
avec cet autre code VBA :
VB:
Sub Essai()
Dim lig&: Application.ScreenUpdating = 0
[A2] = 1: lig = 2800 'à adapter
[A2].AutoFill Range("A2:A" & lig), 4
End Sub
➯ pour A2:A2800 : y'a que des 1 ! mais alors dans ce cas, c'est tout à fait inutile de faire une recopie incrémentée ! c'est beaucoup plus simple de faire ainsi :
VB:
Sub Essai()
Dim lig&: Application.ScreenUpdating = 0
lig = 2800 'à adapter
Range("A2:A" & lig) = 1
End Sub
Bonsoir à tous
Et, bonsoir job75, je te remercie pour l'info, je ne savais pas que Select était nuisible...
Je vais essayer de mettre en place encore merci.
job75, question : dans ta formule ci-dessus comment faire si il faut remplacer 1 par un texte?
Cordialement,
Zizou
Sub Essai()
Dim lig&: Application.ScreenUpdating = 0
[A2] = 1: [A3] = 2: lig = 2800 'à adapter
[A2:A3].AutoFill Range("A2:A" & lig), 4
End Sub
➯ pour A2:A2800 : nombres de 1 à 2799
avec cet autre code VBA :
VB:
Sub Essai()
Dim lig&: Application.ScreenUpdating = 0
[A2] = 1: lig = 2800 'à adapter
[A2].AutoFill Range("A2:A" & lig), 4
End Sub
➯ pour A2:A2800 : y'a que des 1 ! mais alors dans ce cas, c'est tout à fait inutile de faire une recopie incrémentée ! c'est beaucoup plus simple de faire ainsi :
VB:
Sub Essai()
Dim lig&: Application.ScreenUpdating = 0
lig = 2800 'à adapter
Range("A2:A" & lig) = 1
End Sub