XL 2010 Code VBA pour écrire 1 de A2 à inconnue

zizou721

XLDnaute Nouveau
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
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Zizou, Victor, mapomme,

tu as écrit :
«
Je souhaite écrire 1 de la cellule A2 à inconnue.
Exemple : si la colonne B2 est remplie jusqu'à B100, il écrit 1 jusqu'à A100.
»

ce code VBA remplit avec des 1 à partir de A2 :

VB:
Sub Essai()
  Dim lig&: lig = Cells(Rows.Count, 2).End(3).Row: If lig = 1 Then Exit Sub
  Application.ScreenUpdating = 0: [A2].Resize(lig - 1) = 1
End Sub

soan
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
@mapomme, 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

bon samedi et bon dimanche à tous. 🍀

soan
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour zizou721, Patrick, mapomme, soan,

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
A+
 

zizou721

XLDnaute Nouveau
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
 

soan

XLDnaute Barbatruc
Inactif
Bonsoir Zizou, le fil,

essaye ce code VBA :

VB:
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

le résultat sera identique ! :)

soan
 
Dernière édition:

zizou721

XLDnaute Nouveau
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
 

zizou721

XLDnaute Nouveau
Bonsoir Zizou, le fil,

essaye ce code VBA :

VB:
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

le résultat sera identique ! :)
Bonsoir soan,
Merci pour ta proposition je vais essayer, je te souhaite une excellente soirée
 

Discussions similaires

Réponses
16
Affichages
281

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote