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

XL 2010 Autofill au départ d'une cellule variable

  • Initiateur de la discussion Initiateur de la discussion Xwell
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Xwell

XLDnaute Nouveau
Bonjour à tous,

J'ai une problématique qui pour vous pourrez sembler simple, mais vu mon niveau assez compliqué.
Voici le problème:
J'ai un fichier que je dois approvisionner tous les mois et en tant que bon flemmard je cherche des solutions pour l'automatiser.
Aussi je cherche à faire un autofill dynamique au départ de la dernière cellule non vide de la colonne B (donc variable) jusqu'à la dernière cellule non vide de la colonne A.
En réalité je compte faire ce processus pour toutes les colonnes qui ne vont pas jusqu'en bas.

Vous remarquerez qui il a des formules sur la ligne 13 du fichier ce sont donc ces formules que souhaite faire glisser jusqu'en bas.

Merci pour votre temps
Bonne journée à tous
 

Pièces jointes

Solution
au vu de ton code vu que t'as des formule différente par colonne, traité chaque colonne semble OK
par contre au leiu de faire uniquement la formule sur 1 Cellule fait ta formule directement sur la plage de cellules complète. Sélectionne la plage puis colle la formule à la selection.

pour ta colonne B, par exemple :

VB:
'Formule colonne B

Dim k As Long
k = Range("B" & Rows.Count).End(xlUp).Row + 1
Range("B" & k & ":B" & Range("A" & Rows.Count).End(xlUp).Row + 1).Select
Selection.FormulaR1C1 = "=IFERROR(IF(MATCH(RC[-1],C[-1],0)=ROW(),1,""""),"""")"

'Selection.AutoFill Destination:=Range("B2:B" & Range("A" & Rows.Count).End(xlUp).Row)

à essayer 🙂

edit : Ps : je n'ai pas pu exécuter le code dans son ensemble puisque qu'il...
Bonjour,

Pourquoi ne pas utiliser un tableau structuré, comme semble-t-il, vous aviez commencé à le faire ?
Par contre les formules dans les colonnes devront être homogènes.

Sinon en double cliquant sur le petit carré noir en bas à droite de la marquise de sélection des cellules, cela le fera :


Il suffit qu'il y ait une colonne à gauche ou à droite de la sélection qui soit remplie.

cordialement
 
Dernière édition:
Bonjour Hasco,

Merci Hasco pour votre réponse

C'est vrai que cela pourrait être beaucoup plus simple, mais enfaite cela n'est pas la finalité de ma formule VBA car je souhaiterais ensuite copier coller en valeur afin d'alléger au max le fichier qui ici fait quelques centaines de lignes mais qui en réalité en fait plusieurs milliers (50000 environs).
Cliquer 2 fois sur le petit carré noir m'obligerais à mettre fin à la macro pour ensuite la continuer.
Et je ne l'explique pas mais lorsque j'utilise: (" Dim i as long : i = range("A" & rows.count).end(xlup)+1") sur un tableau structuré, cela me revoit sur la cellule sous le tableau ... voilà pourquoi j'ai décidé de ne pas l'utiliser.


Cordialement
 
Re,

Alors avec le premier fichier j'avais fait ceci avant d'aller faire un tour:

L'important dans AutoFill est que la plage Destianation (.Range(Debut,Fin) contienne la plage Source (Debut)

A vous de voir comment vous voulez l'adapter à votre cas. Sachez que la plage source peut contenir plusieurs colonnes et/ou lignes

Liste des types (deuxième argument) autofill :

Cordialement
 
au vu de ton code vu que t'as des formule différente par colonne, traité chaque colonne semble OK
par contre au leiu de faire uniquement la formule sur 1 Cellule fait ta formule directement sur la plage de cellules complète. Sélectionne la plage puis colle la formule à la selection.

pour ta colonne B, par exemple :

VB:
'Formule colonne B

Dim k As Long
k = Range("B" & Rows.Count).End(xlUp).Row + 1
Range("B" & k & ":B" & Range("A" & Rows.Count).End(xlUp).Row + 1).Select
Selection.FormulaR1C1 = "=IFERROR(IF(MATCH(RC[-1],C[-1],0)=ROW(),1,""""),"""")"

'Selection.AutoFill Destination:=Range("B2:B" & Range("A" & Rows.Count).End(xlUp).Row)

à essayer 🙂

edit : Ps : je n'ai pas pu exécuter le code dans son ensemble puisque qu'il fait référence à plein de chose qui ne sont pas dans le fichier exemple (ce qui est compréhensible)
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

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