XL 2021 Dupliquer des cellules

JohnBill

XLDnaute Occasionnel
Bonjour et bon dimanche à tout le forum.
Quelqu'un peut il m'indiquer si il existe une procédure VBA pour dupliquer vers le bas des groupes de deux ou trois cellules jusqu'à la dernière cellule vide de la même colonne.
Je joint un fichier avec les explications sur deux feuilles (2X2 et 3X3).
Merci d'avance pour vos réponses.
 

Pièces jointes

  • DupDates.xlsm
    15.4 KB · Affichages: 12

Staple1600

XLDnaute Barbatruc
Bonjour @JohnBill , @Oneida

@JohnBill
Hop une petite session de recyclage

Dans cet exemple, on traite la colonne B

Je te laisse adapter et tester pour la colonne A ;)

EDITION: Avant de tester, il faut faire le ménage dans la colonne A, quand tes cellules vides ne sont pas vraiment vides.
Une fois, le ménage fait, la macro remplit les cellules vides avec la valeur du dessus.

Mais à relire l'exemple, je ne suis pas sur que ce soit exactement le résultat souhaité, non ?
 
Dernière édition:

JohnBill

XLDnaute Occasionnel
Effectivement, cela ne répond pas exactement à mon problème. Comme expliqué dans le fichier joint à ma demande(Fichier exemple), il s'agit d'une base de données d'albums de musique, quelquefois, le même album a été réédité à une date différente mais comporte les mêmes titres. Lorsque j'effectue le tri (Artiste, album, titre des chansons) et comme il n'y a qu'une date au regard de la première chanson, le classement ne tient pas compte des dates. Je voudrais donc reporter la bonne date sur chacune des chansons pour pouvoir ensuite effectuer un tri parfait.
J'espère m'être bien fait comprendre. En gros ce sont pratiquement des copier/coller de cellules mais très fastidieuses à faire manuellement. Je souhaite que vous trouviez une bonne solution. Merci d'avance à tous ceux qui se pencheront sur ce problème.
 

Staple1600

XLDnaute Barbatruc
Re, Bonjour Job75

@JohnBill
Pourquoi on a deux dates différentes avec pourtant des données identiques pour le reste ?
Exemple
1981​
Kris KristoffersonLive From Austin, TX01 - Star Crossed.mp3CountryIntensoCountry
2013​
Kris KristoffersonLive From Austin, TX01 - Star Crossed.mp3CountryIntensoCountry
 

Laurent78

XLDnaute Occasionnel
Effectivement, cela ne répond pas exactement à mon problème. Comme expliqué dans le fichier joint à ma demande(Fichier exemple), il s'agit d'une base de données d'albums de musique, quelquefois, le même album a été réédité à une date différente mais comporte les mêmes titres. Lorsque j'effectue le tri (Artiste, album, titre des chansons) et comme il n'y a qu'une date au regard de la première chanson, le classement ne tient pas compte des dates. Je voudrais donc reporter la bonne date sur chacune des chansons pour pouvoir ensuite effectuer un tri parfait.
J'espère m'être bien fait comprendre. En gros ce sont pratiquement des copier/coller de cellules mais très fastidieuses à faire manuellement. Je souhaite que vous trouviez une bonne solution. Merci d'avance à tous ceux qui se pencheront sur ce problème.
Bonjour,
Au risque de poser une question bête ... il n'y a aucun autre champ dans la base, juste ceux indiqués, pas de code EAN ou un truc du genre ?
@+
 

job75

XLDnaute Barbatruc
Dans la 2ème feuille vous voulez copier A9 et A11, ne serait-ce pas plutôt A10 et A11 ?
Si c'est bien le cas vous pouvez utiliser cette macro :
VB:
Sub Dupliquer()
Dim c As Range
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
With Columns(1)
    .Replace "", "#N/A"
    For Each c In .SpecialCells(xlCellTypeConstants, 16)
        c = c(-1)
    Next
End With
End Sub
 

job75

XLDnaute Barbatruc
Maintenant si dans la 2ème feuille il faut dupliquer A9 A10 et A11 utiliser :
VB:
Sub Dupliquer2()
Dim c As Range
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
With Columns(1)
    .Replace "", "#N/A"
    For Each c In .SpecialCells(xlCellTypeConstants, 16)
        c = c(-2)
    Next
End With
End Sub
 

JohnBill

XLDnaute Occasionnel
Merci à tous pour vos réponses. Les codes de job75 fonctionnent bien mais il y a un petit problème.
Si sur une même feuille, se trouvent des cas à 2 dates et des cas à 3 dates (Ce qui est le cas sur des feuilles de plusieurs milliers de lignes), le système ne fait pas la différence.
Il duplique deux dates pour toutes les cellules vides si je lance la macro 1 et duplique 3 dates si je lance la macro 2, quel que soit le cas.
 

job75

XLDnaute Barbatruc
Si sur une même feuille, se trouvent des cas à 2 dates et des cas à 3 dates (Ce qui est le cas sur des feuilles de plusieurs milliers de lignes), le système ne fait pas la différence.
C'est à vous d'indiquer à Excel ce qu'il faut faire :
VB:
Sub Dupliquer3()
Dim a As Range, n&
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
With Columns(1)
    .Replace "", "#N/A"
    For Each a In .SpecialCells(xlCellTypeConstants, 16).Areas
        n = Int(Val(InputBox("Nombre de cellules copiées pour remplir " & a.Address(0, 0) & " :")))
        If n > 0 And n < a.Row Then
            a = "=R[-" & n & "]C"
            a = a.Value 'supprime les formules
        End If
    .Replace "#N/A", ""
    Next a
End With
End Sub
 

JohnBill

XLDnaute Occasionnel
Rebonjour à tous et petit message pour job75.
Les macros dupliquer et dupliquer2 fonctionnent parfaitement avec deux dates ou trois dates à reproduire.
Que faut il modifier à la macro dupliquer du post 9 pour faire la même opération avec une seule date. Cela m'intéresse car elle est hyper rapide et évite des copier/coller fastidieux.
S'il y a une solution, merci d'avance.
 

Discussions similaires

Statistiques des forums

Discussions
315 105
Messages
2 116 256
Membres
112 704
dernier inscrit
zanda19