Copie de cellules jusqu'à la suivante

  • Initiateur de la discussion Gilou
  • Date de début
G

Gilou

Guest
Bonjour,

Dans mon fichier je voudrais recopier le NOM1 jusqu'au NOM2 puis le NOM2 jusqu'au NOM3 et ainsi de suite (environ 130 noms)
Peut on faire cette manip avec une macro ?

Mon fichier est peut être plus explicite ?

Merci de votre aide... [file name=Ht.zip size=6268]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Ht.zip[/file]
 

Pièces jointes

  • Ht.zip
    11.3 KB · Affichages: 29
  • Ht.zip
    11.3 KB · Affichages: 29
  • Ht.zip
    11.3 KB · Affichages: 25

Creepy

XLDnaute Accro
Hello alors si j'ai bien compris

1 - Tu fais control + C sur nom1
2 - Tu descends d'une cellule
3 - Controle + shift + fleche vers le bas
4 - Shift + fleche vers le heut
5 - Controel + V

Ca parait compliqué comme ca mais les raccourcis clavier s'est super top de la bombe :woohoo:

++

Creepy

PS : On peux faire par macro mais je vois pas trop l'interet. Le temps de l'ecrire et de la lancer avec les raccourcis clavier c'est fait.
 

dg62

XLDnaute Barbatruc
Bonjour

code qui peut-être nettement amélioré

Code:
Sub recopie()
Dim Depart As String
nomDepart = Range('a7').Value

For i = 1 To 130 * 31 ' pour janvier
 
If Range('A7').Offset(i, 0).Value = '' Then
    Range('A7').Offset(i, 0).Value = nomDepart
    
 Else
    nomDepart = Range('A7').Offset(i, 0).Value
    Range('A7').Offset(i, 0).Value = nomDepart
    
 End If
    
 Next i
  
End Sub
 

Pierre

XLDnaute Occasionnel
BOnsoir Gilou, Creepy, dg62 et le forum,


voici ton fichier en retour avec juste un p'tit bouton en plus.
Cela te convient-il?


Pierre [file name=HT.zip size=11557]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/HT.zip[/file]
 

Pièces jointes

  • HT.zip
    11.3 KB · Affichages: 32
  • HT.zip
    11.3 KB · Affichages: 31
  • HT.zip
    11.3 KB · Affichages: 32

Jam

XLDnaute Accro
Salut Gilou,

Ci joint une ch'tite macro qui va régler ton problème en deux coup de cuillère à pot ;)

A copier dans un module. Après tu sélectionnes la plage que tu veux remplir puis tu lances la macro et c'est fait en 1/10ème de seconde :)

Code:
'********************************************************************
' Remplace les cellules vides par la valeur de la première
' cellule non vide immédiatement au-dessus ou au-dessous.
' Cette procédure parcours la sélection de HAUT en BAS et inversement
' ATTENTION : Cette procédure utilise la sélection en cours
'********************************************************************
Sub FillEmptyLinesWithValue()
Dim i As Long
Dim j As Long
Dim nbColonnes As Long
Dim Start As Long
Dim Finish As Long
Dim TopBot As Byte
Dim Direction As Integer
Dim MyArray, Valeur As Variant
Dim MyRange As Range
Dim Msg As String

On Error GoTo GestionErreur

With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
End With

Set MyRange = Selection
With MyRange
    nbColonnes = .Columns.Count
    MyArray = .Value
End With

Msg = 'Pour effectuer un remplacement de ' & vbCr
Msg = Msg & 'HAUT en BAS cliquer sur le bouton OUI' & vbCr
Msg = Msg & 'BAS en HAUT cliquer sur le bouton NON'
TopBot = MsgBox(Msg, vbYesNoCancel + vbQuestion, TITLE)
Select Case TopBot
    Case vbCancel
        End
    Case vbYes
        Start = 1: Finish = UBound(MyArray, 1): Direction = 1
    Case Else
        Start = UBound(MyArray, 1): Finish = 1: Direction = -1
End Select
For i = 1 To nbColonnes
    Valeur = ''
    For j = Start To Finish Step Direction
        Select Case VarType(MyArray(j, i))
            Case vbEmpty
                MyArray(j, i) = Valeur
            Case Else
                Valeur = MyArray(j, i)
        End Select
    Next
Next
MyRange.Value = MyArray
GestionErreur:
With Application
    .ScreenUpdating = True
    .Calculation = xlCalculationAutomatic
End With
End Sub

Bon courage
 

Discussions similaires

Statistiques des forums

Discussions
314 011
Messages
2 104 528
Membres
109 060
dernier inscrit
Paul0058