Problème : incrémentation automatique

Bonjour à tous,

Je rencontre une difficulté sur excel pour incrémenter/copier automatiquement la valeur d'une cellule jusqu'au prochain changement de valeur et ainsi de suite jusqu'à la fin de ma colonne. Je précise que tout se passe sur une seule colonne.

En d'autres termes je dispose d'une colonne de 800 lignes avec 100 valeurs séparées précisément de 7 lignes vides chacune. Mon but est de remplir ces 7 lignes vides avec la valeur précédente. Ceci devrait me donner une colonne de 800 lignes avec 8 lignes de valeur A puis 8 lignes de valeur B puis 8 lignes de valeur C...

Le fichier joint sera plus clair que mes explications je pense.

Merci à vous pour votre aide !

31exemple.xlsx (14.58 Ko)

Bonjour,

Sub Complète()
Dim Lg&, i%
    Application.ScreenUpdating = False
    Lg = Range("a" & Rows.Count).End(xlUp).Row
    For i = 4 To Lg
        If IsEmpty(Range("a" & i)) Then Range("a" & i) = Range("a" & i - 1)
    Next i
End Sub

Amicalement

Claude

Ca fonctionne parfaitement !

Un grand merci pour votre réactivité !

Beaucoup de tps gagné en perspective !


Après cette belle réussite je me permets de revenir vers vous avec une nouvelle question concernant ce problème.

Pensez vous qu'il est possible d'envisager cette solution pour des colonnes au choix, à la selection par exemple, et non uniquement la colonne a ?

Je suis régulièrement amené à travailler sur des fichiers différents dans lesquels j'ai besoin d'effectuer cette opération sur certaines colonnes mais pas toutes.

Dans l'exemple du nouveau fichier ci-joint il s'agit par exemple d'effectuer l'opération sur les A,C et D uniquement tout en laissant la colonne B intacte. Je pense qu'il est possible de modifier la macro pour l'adapter à chaque cas de figure mais je me pose la question d'une possibilité d'utilisation suite à la selection des colonnes A,C et D.

Merci encore !

14exemple.xlsx (25.14 Ko)

Bonjour,

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Lg&, cL%, i%
'--- double-clic sur la colonne en ligne 3 ---
  If Not Application.Intersect(Target, Rows(3)) Is Nothing Then
    If Target = "" Then Exit Sub
    Application.ScreenUpdating = False
    Lg = Cells.Find("*", , , , xlByRows, xlPrevious).Row
    cL = Target.Column

    For i = 4 To Lg
        If IsEmpty(Cells(i, cL)) Then Cells(i, cL) = Cells(i - 1, cL)
    Next i
    Cells(4, cL).Activate
  End If
End Sub

Amicalement

Claude

Encore parfait, merci beaucoup !

Rechercher des sujets similaires à "probleme incrementation automatique"