XL 2021 Macro copie données valeur à partir de premiere cellule vide

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 !

Hugues1976

XLDnaute Nouveau
Bonjour Groupe.

Voici le problème que j'ai. J'y suis presque mais je manque d'expérience et rendu où j'en suis de patience 🙂
J'ai un tableur Excel. Il y a deux feuilles.
J'ai mes macro pour importer/ valider/ création de champs. Tout va bien.

Là où j'ai de la difficulté est qu'il faut que je copie les valeurs de la feuille BS (colonne 14, nombre fixe) dans la feuille WBS avec la formule =SIERREUR(INDEX(BS!$A$1:$ZZ$17;EQUIV($A7;BS!$A$1:$A$17;0);14);"")

La colonne (qui correspond à des mois) où les copier est la première vide (dans la ligne 5). Donc au départ c'est I5 (Colonne juin) , la fois d'apres J5 (Juillet) , ensuite K5 (Aout). Ainsi de suite.

Le range de ligne est de 5 à 200 et est fixe.
Je joint le fichier


Merci de votre support
 

Pièces jointes

Voici le code. Désolé.

JE sais qu'il y a un "Range.("A5").End(xldown.offset(1,0).select

Donc il faut que je trouve la premiere colonne avec une valeur vide dans la ligne 5, ce sera ma valeur de départ.
Il faut ensuite que J'applique la formule si erreur de cette valeur, donc A;?, de la ligne 5 jusqu'à la ligne 200.

Voici mon début de code.
Encore merci pour votre aide🙂
J'avance ! 🙂


VB:
Sub COPIE_DONNEE()

Worksheets("WBS").Activate 'activer la feuille WBS

Dim t As Long

For t = 5 To 200 'Définir les lignes 5 à 200

'il faut que je sélectionne la première cellule vide sur la ligne 5


    ActiveCell.FormulaR1C1 = _
        "=SIERREUR(INDEX(Billing_Summary!$A$1:$ZZ$17;EQUIV($A,t;Billing_Summary!$A$1:$A$17;0);14);"")"

Next t



End Sub
 
Je me suis fais les dents un peu
Bonjour Hugues1976

Et ou est le code 🤔
Sub copie_donnee()

Dim lastCell As Range
Dim targetRange As Range


' Aller à la derniere cellule vide dans la ligne5
Set lastCell = Cells(5, Columns.Count).End(xlToLeft).Offset(0, 1)

' Créer un range jusqu'à la ligne 200
Set targetRange = Range(lastCell, lastCell.Offset(200, 0))

' Appliquer la formule
targetRange.FormulaR1C1 = "=IFERROR(INDEX(Billing_Summary!R1C1:R999C2,MATCH(RC3,Billing_Summary!R1C1:R999C1,0),14),"""")"


End Sub

Allo. Voici le code am.éliorer.
 
- 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

Retour