Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL pour MAC Macro pour remplissage automatique de cellules

Ebene

XLDnaute Nouveau
Bonjour
Est-il possible avec une macro, de faire la même chose que dans Excel, à savoir :
lorsque l'on double clique sur le petit carré en bas à droite d'une cellule sélectionnée,
le remplissage des cellules suivantes de la colonne se fait automatiquement jusqu'à la dernière ligne ?
Dans le fichier simplifié joint, les colonnes C, F et H sont à remplir automatiquement.
L'onglet AVANT correspond à ce que j'ai.
L'onglet APRES correspond à ce que je veux au final.
(Sur les fichiers définitifs, les colonnes à remplir ne seront pas celles du fichier simplifié mais je pense que ce sera adaptable)
Merci
 

Pièces jointes

  • Fichier 2.xlsx
    12 KB · Affichages: 17

Staple1600

XLDnaute Barbatruc
Re

En continuant mes tests, j'en suis arrivé à ceci
VB:
Sub test_ok()
Dim i&, rng As Range
Set rng = Cells(1).CurrentRegion.SpecialCells(xlCellTypeBlanks)
For i = 1 To rng.Areas.Count
rng.Areas(i).Formula = rng.Areas(i).Item(1).Offset(-1).Formula
Next
End Sub
Test OK sur PC

NB: Sinon le raccourci CTRL+B marche trés bien aussi
(même sur une sélection multiple)
D'ailleurs la macro du message#2 n'est que la transcription en VBA de ce fameux raccourci
 

Ebene

XLDnaute Nouveau
Effectivement cela marche sur le fichier simplifié mais sur le fichier définitif, cela rempli toutes les cellules vides.
Or il faut seulement modifier les colonnes L, W, Y
Merci
 

Pièces jointes

  • fichier3.xlsx
    12.4 KB · Affichages: 7

Phil69970

XLDnaute Barbatruc
Bonjour @Ebene, @Staple1600, le forum

Je te propose ceci:
VB:
Private Sub MaJ()
Application.ScreenUpdating = False
Dim Derlig&

With Worksheets("WDPD1359 - MR BRICOLAGE")
    Derlig = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("L2:L" & Derlig).FillDown
    .Range("W2:W" & Derlig).FillDown
    .Range("Y2:Y" & Derlig).FillDown
End With

End Sub
*Edit : J'ai rajouté le fichier

@Phil69970
 

Pièces jointes

  • Colonnes L W Y_V1.xlsm
    20.7 KB · Affichages: 7

Phil69970

XLDnaute Barbatruc
Re

C'est vrai que souvent le demandeur ne met pas un fichier représentatif de sa problématique.
A savoir ici il aurait mis dans son exemple le nom de son onglet et les colonnes à traiter (L,W,Y) 7 post aurait été épargné, mais je n'aurais point pu te donner le bonjour....

@Phil69970
 

Staple1600

XLDnaute Barbatruc
Re

Donc en adaptant ma macro précédente
VB:
Sub Test_OK_B()
Dim i&, rng As Range
Set rng = Union([L:L].SpecialCells(4), [W:W].SpecialCells(4), [Y:Y].SpecialCells(4))
For i = 1 To rng.Areas.Count
rng.Areas(i).Formula = rng.Areas(i).Item(1).Offset(-1).Formula
Next
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Phil
Exact.
Mais perdre du temps un jour férié, c'est malaisant comme dirait ma nièce
(Non, je plaisante)
D'ailleurs en parlant de plaisanterie, le code précédent en avait des miettes
Donc code corrigé
VB:
Sub Test_OK_B()
Dim i&, r As Range
Set r = Union([L:L].SpecialCells(4), [W:W].SpecialCells(4), [Y:Y].SpecialCells(4))
For i = 1 To r.Areas.Count
r.Areas(i).Offset(-1).Resize(r.Rows.Count + 1) = r.Areas(i).Item(1).Offset(-1).Formula
Next
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

En mixant mon message#2 avec le message#12
Je simplifie ainsi
VB:
Sub Test_OK_C()
Dim i&, r As Range
Set r = Union([L2], [L:L].SpecialCells(4), [W2], [W:W].SpecialCells(4), [Y2], [Y:Y].SpecialCells(4))
r.FillDown
End Sub
=>Phil
Tu ne vois pas de biais possible?
Cela semble fonctionner non?
 

Ebene

XLDnaute Nouveau
Désolé d'avoir fourni un fichier simplifié, je pensais bien faire, mais pas vous faire perdre de temps !
Surtout un jour férié !
La dernière macro fonctionne parfaitement.
Merci à tous
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…