Recopier le contenu d'une cellule automatiquement

Bonjour,

Je débute, je n'ai pas trouvé via la fonction recherche,

je vous explique ce que j'essaie de faire : prendre la cellule A2 et la recopier dans la cellule en dessous qui est vide de manière automatique jusqu'à la prochaine cellule non vide, ensuite faire de même avec cette cellule ainsi de suite, dans mon exemple une fois que les cellules de B à G ne contiennent plus aucune données, évidemment stopper la fonction. Cela débutera toujours par la cellule A2. J'ai indiqué en bas le résultat final voulu pour + de clarté.

Merci d'avance pour votre aide, je rame pas mal

Bonjour,

Une proposition sans VBA.

Réalisée avec Récupérer et transformer (Power Query) intégré à ta version Excel.

Les dates sont des dates (valides) .

Cdlt.

Salut, merci de ton aide, je vais regarder.

Je viens de voir, en fait je cherche absolument du code pour l'intégrer à un ensemble de fonctions dans une macro que je déclenche par raccourci clavier, est-ce que c'est traductible en code ?

6polak6.xlsm (20.50 Ko)

ce serait quelque chose comme ceci, mais je n'arrive pas à adapter le code à mon fichier

J'ai trouvé ceci, mais ça ne fonctionne qu'à moitié :

Sub test()
    For Each c In Range([A2], Cells(Rows.Count, 1).End(xlUp))
        If c.Value = "" Then c.Value = c.Offset(-1).Value
    Next c
End Sub

Bonjour,

Essaie ainsi :

Public Sub EmptyCells()
Dim lastRow As Long, rng As Range, rng2 As Range
    With ActiveSheet
        lastRow = .Cells(.Rows.Count, 2).End(xlUp).Row
        Set rng = .Cells(2, 1).Resize(lastRow - 1)
        rng.NumberFormat = "General"
        On Error Resume Next
        Set rng2 = rng.SpecialCells(xlCellTypeBlanks)
        On Error GoTo 0
        If Not rng2 Is Nothing Then
            With rng2
                '.Font.Color = vbRed
                .FormulaR1C1 = "=R[-1]C"
            End With
        End If
        rng.Value = rng.Value
    End With
End Sub

Salut, c'est bizarre ça fonctionne sur le fichier que tu as annexé mais sur mon fichier projet ça ne fonctionne que pour le premier nom de registre, il ne le fait pas pour le second, j'ai mis le code sur la feuil1 avec le nom de fonction ""remplirfeuil1" et sur la feuil2 pour "remplirfeuil2"car cela doit me le faire pour ces 2 tableaux, je comprends pas ce qu'il se passe

6historic-test.xlsm (69.27 Ko)

Bonjour,

Tes 2 feuilles n'ont probablement pas les mêmes contenus, ou sont situés à des emplacements différents. Ici, c'est cette partie du code qui cible la plage :

    
With ActiveSheet '>> sur la feuille active
        lastRow = .Cells(.Rows.Count, 2).End(xlUp).Row '>> numéro de ligne de la dernière cellule non vide en 2è colonne
        Set rng = .Cells(2, 1).Resize(lastRow - 1) '>> on définit notre plage en colonne 1 (de la ligne 2 à lastrow)

Donc peut-être qu'il faut que tu disposes autrement ton 2e tableau, ou que tu adaptes le code...

Cordialement,

Bonjour,

Une mise à jour de la procédure initiale.

Elle traite les colonnes A et B (?). Mets cette procédure dans un module standard (et non dans un module de feuille) avec un raccourci clavier Ctrl +m.

La procédure traite la feuille active.

Sinon, il serait judicieux d'imaginer tes données sous forme de tableaux structurés.

Cdlt.

Public Sub RemplirFeuilles()
'Raccourci clavier: Ctrl + m
Dim lastRow As Long, rng As Range, rng2 As Range
    With ActiveSheet
        lastRow = .UsedRange.Rows.Count
        Set rng = .Cells(2, 1).Resize(lastRow - 1, 2)
        rng.NumberFormat = "General"
        On Error Resume Next
        Set rng2 = rng.SpecialCells(xlCellTypeBlanks)
        On Error GoTo 0
        If Not rng2 Is Nothing Then
            With rng2
                .FormulaR1C1 = "=R[-1]C"
            End With
        End If
        rng.Value = rng.Value
    End With
End Sub

salut, merci je vais tester ça, en fait pour être plus précis sur ce projet, je lance plusieurs fonctions via un seul raccourci clavier, quand je fais le raccourci ctrl+u je suis sur la feuille 2 mais le remplissage doit s'effectuer également sur le tableau de la feuille1, car une fonction compare des choses entre les deux tableaux, je pense que le problème vient de là, du coup à la place du terme active sheet comment est-ce que je pourrais m'y prendre pour que cela se fasse sur la feuille 1

re, ça fonctionne avec le précédent code que tu m'avais envoyé, en fait j'ai changé l'ordre de la fonction et l'ai mise après une fonction qui deletait des colonnes, donc il y avait des vides, j'ai placé les 2 codes sur la feuil2 et j'ai mis WITH FEUIL1 au lieu d'active sheet, comme ça marche je n'y touche plus, je vais tester avec plusieurs registres mais ça semble aller !

captuggggggggggggggggggre

J'ai eu besoin de recopier le nom du registre dans les cellules vides pour pouvoir faire des tests avec un autre tableau , du coup sur cette feuille pour faire une sorte de roll back comment je pourrai procéder ? une fonction qui élimine les doublons qui se suivent ?

Rechercher des sujets similaires à "recopier contenu automatiquement"