VBA - TCD Remplir les lignes vides

  • Initiateur de la discussion Initiateur de la discussion La braise
  • Date de début Date de début

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 !

La braise

XLDnaute Occasionnel
Bonjour à tous,

Voilà mon problème...

Je génére un TCD par VBA 🙂 là ça va!

J'obtiens un tableau au format suivant :

AAAA AA01
........ AA02
........ AA03
BBBB BB01
........ BB02
.........BB03

Ce que je souhaite c'est une macro qui recopie AAAA sur toutes les lignes concernant AAAA et BBBB sur toutes les lignes BBBB.

soit :

AAAA AA01
AAAA AA02
AAAA AA03
BBBB BB01
BBBB BB02
BBBB BB03

L'idée est de créer une nouvelle base à exporter dans un new fichier.
Une fois le TCD crée, je le copie/colle special valeur.

- il y a t-il une option dans le TCD pour qu'il recopie sur chaque ligne la valeur du champ? J'ai pas trouvé 😡

- comment contruire une macro qui réalise cette action?
J'ai pensé à la piste suivante :
Travailler sur la colonne A
Faire une boucle qui cherche la 1ère colonne vide.
recopier la valeur de la cellule Ligne-1
faire tourner la boucle jusqu'à que que le n° de ligne de la cellule vide soit égal à ma dernière cellule du TCD (variable identifiée avec ROWS.Count)​

D'avance merci pour votre aide ou vos pistes de réflexion sur la question.

🙂

La braise
 
Re : VBA - TCD Remplir les lignes vides

Complément d'information :

je suis sur le code suivant :

Sub FM_TEST()

Dim L_TDC As String
Dim NBL_TDC As String

'identifier la dernière ligne du TDC
NBL_TDC = ActiveSheet.UsedRange.Rows.Count
'MsgBox NBL_TDC

Do Until L_TDC = NBL_TDC
Range("L1").Select
ActiveSheet.Range("L1").End(xlDown).Offset(1, 0).Select
L_TDC = Selection.Row
Range("l" & L_TDC).Value = Range("l" & L_TDC - 1).Value
Loop

End Sub

L'idée: une boucle qui compare le n° de la ligne de sélection End(xlDown) juqu'à que le n° de cette ligne soit égal au nb total de ligne du TCD!

Séduisant 😛

Sauf que le problème... la boucle ne s'arrête pas au critère indiqué 😡 et continue sans fin...

Peut-être un pbm de syntaxe dans ma boucle ???

Si quelqu'un a une idée...; je suis plus que preneur.... 🙂🙂🙂
 
Re : VBA - TCD Remplir les lignes vides

Bonjour La Braise,

regarde le code ci dessous, à exécuter après collage spécial des valeurs d'un TCD sans "champs de page" :

Code:
Option Explicit
Sub test()
Dim l As Integer, c As Integer
For c = 1 To 2 'nombre de champs "ligne" du TCD dont les valeurs sont à dupliquer
    For l = 2 To Range("B65536").End(xlUp).Row 'colonne pour laquelle la dernière ligne est renseignée
        If Cells(l, c).Value = "" Then Cells(l, c).Value = Cells(l - 1, c).Value
    Next l
Next c
End Sub

bonne fin d'après midi
@+
 
Re : VBA - TCD Remplir les lignes vides

Bonjour à tous et à Pierrot93,

Juste une précision a propos du code indiqué ci-dessus par Pierrot93 :

Option Explicit
Sub test()
Dim l As Integer, c As Integer
For c = 1 To 2 'nombre de champs "ligne" du TCD dont les valeurs sont à dupliquer
For l = 2 To Range("B65536").End(xlUp).Row 'colonne pour laquelle la dernière ligne est renseignée
If Cells(l, c).Value = "" Then Cells(l, c).Value = Cells(l - 1, c).Value
Next l
Next c
End Sub​

Mon problème de champs vides à remplir ne concerne qu'une seule colonne.
Est-il possible de limiter la boucle à :
- uniquement cette colonne ("colonne L" pour info 🙂
- uniquement aux lignes du TCD via une variable "Nb_Ligne" que j'ai crée et qui me compte déjà le nb de ligne du tableau

D'avance merci pour votre aide...

Bonne macro à tous... 🙂
 
Dernière édition:
Re : VBA - TCD Remplir les lignes vides

Bonjour La Braise

modifies peut être comme suit :

Code:
Option Explicit
Sub test()
Dim l As Integer, c As Integer, Nb_Ligne As Integer
c = 12
    For l = 2 To Nb_Ligne
        If Cells(l, c).Value = "" Then Cells(l, c).Value = Cells(l - 1, c).Value
    Next l
End Sub

à tester...

@+
 
Re : VBA - TCD Remplir les lignes vides

Super! 😀

ça marche nickel et c'est beaucoup plus rapide. (gros fichier 50.000 lignes!)

Merci beaucoup pour ton aide précieuse sur mon projet!

Je demande au moderateur que l'on érige immédiatement une statue pour Môssieur Pierrot93!!!

🙂🙂🙂
 
- 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

Réponses
6
Affichages
662
Réponses
8
Affichages
648
Retour