Remplir des lignes vides

Bonjour à tous,

Je possède un fichier où j'aurais besoin de reporter automatiquement dans la case d'en dessous (si elle est vide) l'information du dessus.

Exemple : en A1 j'ai le nom de famille Durand, en dessous a2 a3 a4 sont vide et j'ai Dupond en a5.

J'aimerai donc reporter le nom Durand automatiquement en a2 a3 a4 pour combler les blancs.

Comment devrais je m'y prendre ?

Merci d'avance pour votre aide !

Bonjour

Réponse effacée, sujet mal compris

Bonjour,

Par un code, tu peux le faire...

En supposant qu'il y a des données dans la colonne B jusqu'en bas de ton tableau

Tel que celui-ci :

Sub Remplir_Vides()
With Range("A1:A" & [B65000].End(xlUp).Row)
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    .Value = .Value
End With
End Sub

Bonne journée

Bonjour,

Pour éviter d'avoir à y revenir,

envoie la feuille avec sa structure réelle (quelques lignes)

Amicalement

Claude

Merci pour vos réponses,

@ cousinhub : merci mais je débute, où suis je censé copier ce code ?

Voici un fichier d'exemple avec uniquement les premières lignes (22000 au total, d'où l'envie d'automatiser la chose ), j'aurais donc besoin de reporter ABADIE FREDERIC (a1;b1) respectivement dans les cases a2;b2 a3;b3 a4;b4 et a5;b5.

Ensuite même chose pour reporter ABADIE MARIE sur les lignes 9 à 12...

J'espère avoir été clair, merci pour votre aide !

Thomas

152exemple.xls (17.00 Ko)

Re-,

Pour utiliser ce code, tu ouvres l'éditeur VBE (Visual Basic Editeur) en appuyant sur Alt + F11

Tu fais Insertion/Module, et tu colles le code

tu reviens sur ta feuille Excel, puis tu fais "Outils/Macros/Macros..." (ou Alt + F8)

tu choisis la macro "Remplir_Vides", Exécuter....

Tu peux ensuite supprimer le code, en retournant sur le VBE, clic droit sur le nom du module (Module1), "Supprimer" sans exporter.

Nouveau code au vu de ton fichier :

Sub Remplir_Vides()
With Range("A1:B" & [L65000].End(xlUp).Row)
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    .Value = .Value
End With
End Sub

Bon courage

Merci pour ta réponse, je suis débordé je test ça dès lundi matin et je te tiens au courant.

Bon week-end !

Ça marche impeccablement bien !

Milles merci !

Pour solder le poste, c'est ici

a resolu2

Bonjour à tous,

Pourriez-vous m'expliquer pourquoi ce code (ou autre trouvé ailleurs en ligne) ne fonctionne plus correctement à partir d'un certain nombre de ligne. Cela marche jusqu’aux dizaines de milliers de lignes.

Pour être plus clair, j’aimerais réaliser l’opération sur une colonne de plus de 500 000 lignes. Malgré plusieurs essais, le résultat est toujours le même, à savoir, le contenu de la première cellule de la plage de cellules de la colonne est copié sur l'ensemble de la plage cellules.

Même en le faisant à la main, je suis obligé de le faire en plusieurs fois car l’opération en une seule demande trop de ressources (c'est d'ailleurs pour cela que je voulais passer par du code).

Je joins mon fichier si jamais quelqu'un a la gentillesse de bien vouloir m'aider

Merci.

27blanks.xlsm (263.92 Ko)

Bonjour NedStark, toutes et tous,

Bon, j'aimerai bien te dire "C'est moi qui l'ai fait" , mais ce n'ai pas le cas, en cherchant une solution à ton problème, je suis tombé sur cette macro qui est mise dans un module.

Son fonctionnement est simple et relativement rapide au delà de tes espérances, puisqu'elle va jusqu'à la dernière ligne, a savoir la ligne 1.048.576 si tu sélectionne la colonne.

Il faut d'abord sélectionner toute la colonne ou uniquement un bout de la plage, avec la possibilité de le faire dans les 2 sens (vers le bas ou vers le haut) voir instructions en cliquant sur le bouton.

J'ai neutralisé la macro que tu avais mis dans la feuille avec des apostrophes.

Cela te convient-il ?

Cordialement.

25blanks-v1.xlsm (279.68 Ko)

Bonjour Mdo100,

Cela te convient t-il ?

Le Top ! Merci beaucoup !

C'est un super exemple de boucle (Je suis encore débutant en VBA).

Je vais m'attacher à comprendre ce code, car par exemple je ne vois pas à quel moment dans le code l'instruction de copie de la cellule directement au dessus (si on va dans un sens) ou au dessous (si on va dans l'autre) intervient.

En tout cas merci encore pour ta réponse.

Ned.

Rechercher des sujets similaires à "remplir lignes vides"