Microsoft 365 Complétion automatique d'une colonne

  • Initiateur de la discussion Initiateur de la discussion Semafor67
  • 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 !

Semafor67

XLDnaute Nouveau
Hello,

J'espère que vous allez bien.

J'ai besoin de votre aide svp pour une tâche que je ne sais automatiser (voir exemple joint).

Comment puis-je compléter automatiquement la colonne "Nom" ? Dans mon exemple cela ne pose pas de problème mais le fichier que je dois traiter comporter des milliers d'entrées.

Un tout grand merci par avance.

Bien cordialement,

Marc
 

Pièces jointes

Bonjour,

nul doute que des experts auront d'autres solutions en VBA, mais sans y comprendre fifre, en passant par Power Query c'est assez simple à réaliser. (et si tu ne connais pas Query ce sera l'occasion de découvrir ce formidable outil).

1ere étape : Convertir ta plage en tableau

Tu sélectionnes de A1 à B10 puis la fonction "Mettre sous forme de tableau"
1713877164544.png
1713877192692.png


Tu choisis n'importe quel style et tu valides en cochant bien mon tableau comporte des en-têtes
1713877239445.png


2éme étape : Importer ce tableau dans power Query

Tu cliques sur une cellule du tableau pour le selectionner puis menu "Données" , A partir de Tableau ou d'une Plage :
1713877368378.png


La fenetre Power Query s'ouvre :
1713877404420.png


3ieme Etape : Remplir les vides

Tu cliques sur la colonne Nom puis dans le menu "transformer" Remplir vers le bas
1713877519809.png


Tu obtiens le résultat suivant :
1713877545918.png


Enfin tu peux éventuellement renommer la requête dans le champ Propriétés/Nom complétement à droite

Puis dans le menu Accueil, fermer et charger

Un nouvel onglet sera créé avec ton tableau rempli.
 
Bonsoir @Semafor67 ,@brossadan ,

Un essai en VBA.
VB:
Option Explicit

Sub Completion()
   Dim rg As Range, i As Long

   With ThisWorkbook.Sheets("feuil1")
      Set rg = .Range("A1").CurrentRegion
      For i = 2 To rg.Rows.Count
         If .Cells(i, 1) = "" And .Cells(i, 2) <> "" Then .Cells(i, 1) = .Cells(i - 1, 1)
      Next i
   End With
End Sub
ou en utilisant un tableau plus adapter pour beaucoup de ligne (+rapide)
Code:
Sub Completion_Tb()
   Dim Tb, i As Long

   With ThisWorkbook.Sheets("feuil1")
      Tb = .Range("A1").CurrentRegion.Value
      For i = 2 To UBound(Tb)
         If Tb(i, 1) = "" And Tb(i, 2) <> "" Then Tb(i, 1) = Tb(i - 1, 1)
      Next i
   .Range("A14").Resize(UBound(Tb), UBound(Tb, 2)) = Tb 'cellule à adapter
End With
End Sub
 

Pièces jointes

Dernière édition:
Bonsoir à tous, 🙂

Ou ceci :
VB:
Sub remplir()
   With Sheets("Feuil1").Range("A2:A" & Cells(Rows.Count, 2).End(xlUp).Row)
        On Error Resume Next
        .SpecialCells(4).FormulaR1C1 = "=r[-1]c"
        On Error GoTo 0
        .Value = .Value
    End With
End Sub
klin89
 
Bonsoir à tous 🙂 ,

Un autre code VBA placé dans le module associé à la feuille concernée "Feuil1".
Pour exécuter le code , double-cliquez sur la cellule A1.

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim t, i&
  If Target.Address(0, 0) <> "A1" Then Exit Sub Else Cancel = True
  t = Intersect(Columns("a:b"), [a1].CurrentRegion)
  For i = 2 To UBound(t): t(i, 1) = IIf(t(i, 1) = "", t(i - 1, 1), t(i, 1)): Next
  [a1].Resize(UBound(t), 2) = t
End Sub
 

Pièces jointes

Bonjour le fil

Je plussoie à la proposition de @brossadan
Il a fourni les photos 😉
Je fournis le code M
PowerQuery:
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
    #"Type modifié" = Table.TransformColumnTypes(Source,{{"Nom", type text}, {"Produit", type text}}),
    #"Rempli vers le bas" = Table.FillDown(#"Type modifié",{"Nom"})
in
    #"Rempli vers le bas"

@brossadan
C'est quoi ces points de couleur avec Valide Erreur Vide ?
Je n'ai pas cela dans mon PQ
 
Bonsoir,
@Staple1600 ce sont des options d'affichage, plutôt pratiques pour repérer les erreurs ou les colonnes vides

1713910408316.png


Distribution des colonnes donnera un histogramme :
1713910475368.png


quand à profil de colonne affichera le détail en bas d'écran avec le nombre de valeurs, le nombre d'erreur, de vide, de valeurs distinctes, d'uniques, le min et max :

1713910553326.png


C'est parfois très pratique.

Bonne soirée
 
Bonjour,

nul doute que des experts auront d'autres solutions en VBA, mais sans y comprendre fifre, en passant par Power Query c'est assez simple à réaliser. (et si tu ne connais pas Query ce sera l'occasion de découvrir ce formidable outil).

1ere étape : Convertir ta plage en tableau

Tu sélectionnes de A1 à B10 puis la fonction "Mettre sous forme de tableau"
Regarde la pièce jointe 1195566Regarde la pièce jointe 1195567

Tu choisis n'importe quel style et tu valides en cochant bien mon tableau comporte des en-têtes
Regarde la pièce jointe 1195568

2éme étape : Importer ce tableau dans power Query

Tu cliques sur une cellule du tableau pour le selectionner puis menu "Données" , A partir de Tableau ou d'une Plage :
Regarde la pièce jointe 1195569

La fenetre Power Query s'ouvre :
Regarde la pièce jointe 1195571

3ieme Etape : Remplir les vides

Tu cliques sur la colonne Nom puis dans le menu "transformer" Remplir vers le bas
Regarde la pièce jointe 1195572

Tu obtiens le résultat suivant :
Regarde la pièce jointe 1195573

Enfin tu peux éventuellement renommer la requête dans le champ Propriétés/Nom complétement à droite

Puis dans le menu Accueil, fermer et charger

Un nouvel onglet sera créé avec ton tableau rempli.
Juste génial, un grand merci !
 
- 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
21
Affichages
223
Réponses
3
Affichages
390
Retour