Ajout texte identique dans plusieurs cellules sur une plage variable en VBA

Risbal14

XLDnaute Nouveau
Bonjour,

je recherche la solution la plus rapide pour ajouter le même texte dans plusieurs cellules sur une plage variable (nombre de lignes).

Le traitement que j'utilise avec For me semble particulièrement long (cf fichier joint) pour un nombre de lignes importantes.

Existe-t-il une solution plus rapide?

Merci de votre aide.

Boris.
 

Pièces jointes

  • Insertion_Texte.xlsm
    20.7 KB · Affichages: 43

Abel

XLDnaute Accro
Re : Ajout texte identique dans plusieurs cellules sur une plage variable en VBA

Bonjour Risbal14,

Essaie l'exemple en PJ.

Moins de 1 sec. pour les 1021 lignes chez moi (XL2003).

Abel.
 

Pièces jointes

  • Ex_Texte_Risbal14.xls
    68.5 KB · Affichages: 63

Risbal14

XLDnaute Nouveau
Re : Ajout texte identique dans plusieurs cellules sur une plage variable en VBA

Abel,

Merci ça marche nickel.

Comment modifier la formule pour qu'elle prenne en compte toutes les lignes de la colonne A ayant un contenu et ne s'arrête pas à 65 000 lignes?

Boris
 

Efgé

XLDnaute Barbatruc
Re : Ajout texte identique dans plusieurs cellules sur une plage variable en VBA

Bonjour Risbal14, Abel, le fil, le forum
Si c'est une question de rapidité d'execution, mieux vaut passer par un tableau:
VB:
Private Sub CommandButton1_Click()
Dim Tableau As Variant, I As Long
Tableau = Range("A1:B" & Cells(Rows.Count, 1).End(xlUp).Row)
For I = 2 To UBound(Tableau, 1)
    Tableau(I, 2) = "Mon_Texte"
Next I
Range("A1").Resize(UBound(Tableau, 1), UBound(Tableau, 2)) = Tableau
End Sub
Cordialement
 

Abel

XLDnaute Accro
Re : Ajout texte identique dans plusieurs cellules sur une plage variable en VBA

Re,

65536 est le nombre maximum de lignes dans Excel 2003.

Pour les versions ultérieures, c'est un peu plus ...
Mon code part du plus bas qui existe dans une feuille pour remonter jusqu'à la première ligne où il y a quelque chose.
Ce qui correspond, en théorie et si la feuille est bien remplie, à la dernière ligne où il y a un enregistrement dans ladite feuille.

Ce 65536 est à adapter en fonction des versions d'Excel.
Mais il me semble qu'il y a des méthodes VBA permettant de trouver la dernière ligne d'un tableau sur les versions récentes d'Excel. C'est en tout cas ce que j'ai compris en regardant quelques codes proposés sur le forum.

Abel.

Edit : bonjour efgé. Ton code sera plus rapide, effectivement. Je bricole pas encore bien les tableaux.
 
Dernière édition:

Discussions similaires

C
Réponses
41
Affichages
2 K