XL 2013 copier coller de valeur

rimas

XLDnaute Nouveau
Salut à tous,

j'ai une petite interrogation à vous faire partager.
Je n'arrive pas à faire du copier coller via la cellule du dessus sachant qu'il y a une cellule pleine un petit plus bas ainsi de suite.
exemple:
A1: 21000
A2:(vide)
A3:(vide)
A4: 23000
A4:(vide)
A5:(vide)

J'aimerai bien glisser de la A1 en remplissant la A2 et A3 avec 21000 tout en conservant la A4 et faire glisser le 23000 pour remplir la A5 et A6, ainsi de suite.

Fichier excel ci joint !

J'ai un peu de mal donc si quelqu'un à la solution je suis preneur
Merci :)
 

Pièces jointes

  • copier coller de valeur.xls
    26 KB · Affichages: 31

eriiic

XLDnaute Barbatruc
Bonjour,

tu en as beaucoup ou c'est à faire souvent ?
Parce un simple double-clic sur la poignée de recopie (petit carré noir en bas à droite de la sélection) des cellules saisies rempli jusqu'à la suivante. Ca va vite...
eric
 

Hieu

XLDnaute Impliqué
Salut Rimas, eriiiic,

Une idée, par macro, à adapter, selon besoin :
VB:
Sub mlkj()
For i = 1 To 50
If IsEmpty(Range("a" & i)) = False Then temp = Range("a" & i)
If IsEmpty(Range("a" & i)) = True Then Range("a" & i) = temp
Next i
End Sub

++
 

Pièces jointes

  • copier coller de valeur_v0.xls
    32 KB · Affichages: 30

job75

XLDnaute Barbatruc
Bonjour,
je vais peut être m'y mettre sur VBA ça m'a l'air de bien aider contrairement au formule
Oui mais mieux vaut des formules quand le VBA est parfaitement inutile.

En supposant que A1 n'est pas vide :

1) sélectionner la colonne A

2) touche F5 => Cellules => Cellules vides

3) si la cellule active (adresse affichée en haut à gauche) est A2 taper dans la barre de formule =A1

(si la cellule active est A3 taper =A2)

4) valider par les touches Ctrl+Entrée (pour entrer la formule dans toutes les cellules vides)

5) éventuellement faire un Copier/Collage spécial-Valeurs de la colonne A sur elle-même.

A+
 

job75

XLDnaute Barbatruc
Re,

Cela dit sur 800 000 lignes la sélection des cellules vides peut prendre un temps fou.

Alors en effet il faut du VBA :
Code:
Sub Remplissage()
Dim t, P As Range, tablo, i&
t = Timer
Set P = Intersect([A:A], ActiveSheet.UsedRange.EntireRow)
tablo = P.Resize(P.Rows.Count + 1) 'au moins 2 éléments
For i = 2 To P.Rows.Count
  If tablo(i, 1) = "" Then tablo(i, 1) = tablo(i - 1, 1)
Next
P = tablo
MsgBox "Durée " & Format(Timer - t, "0.00 \s") 'mesure facultative
End Sub
Sur le fichier fourni avec le tableau recopié sur 810 000 lignes la macro s'exécute en moins de 2 secondes.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 349
Membres
103 526
dernier inscrit
HEC