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

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

  • Recheche_valeur_www.xlsx
    81 KB · Affichages: 5

Hugues1976

XLDnaute Nouveau
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
 

Hugues1976

XLDnaute Nouveau
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.
 

Discussions similaires

Statistiques des forums

Discussions
312 208
Messages
2 086 257
Membres
103 167
dernier inscrit
miriame