Tirer une formule jusqu'à la dernière ligne, dans une macro

Résolu
gexelpas -  
M-12 Messages postés 1332 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaite intégrer un code dans VBA, qui permette de copier/coller la formule dans la cellule D1, dans toutes les cellules de la colonne D, jusqu'à la dernière ligne contenant une valeur dans la colonne A.

Merci d'avance pour votre aide !
gexelpas

2 réponses

M-12 Messages postés 1332 Date d'inscription   Statut Membre Dernière intervention   285
 
Bonjour,
Voici un exemple avec recopie de la formule

https://mon-partage.fr/f/qbJPFV4p/
1
gexelpas
 
Bonjour M-12,
Merci pour cette réponse et le fichier test, qui fonctionne très bien.
J'ai essayé de retranscrire le code dans mon module, mais la macro bug dessus, indiquant "Erreur d'exécution 6: Dépassement de capacité"....
Pour précision, l'onglet sur lequel la formule doit être tirée, comporte toujours plus de 100 000 lignes...
Y'a t-il une parade ?

voilà comment j'ai intégrer ton code à la formule que je souhaite tirer.

Merci d'avance !

Dim F As String
Dim D2 As Integer
D2 = Sheets("Originelle (2)").Range("A" & Rows.Count).End(xlUp).Row
F = "=IF(OR(RC[31]=""SALES REGULAR"",RC[31]=""SALES DEMO/USED""),IF(OR(RC[5]=""Budget2019"",RC[5]=""Budget2020""),""No"",IF(RC[16]=""TK"",""No"",IF(RC[-1]=""US"",""No"",IF(OR(RC[45]<>0,RC[40]<>0),""Yes"",IF(OR(RC[30]=""ACCESSORIES"",RC[30]=""CREDIT"",RC[30]=""DIN"",RC[30]=""SERVICE""),""No"",""Yes""))))),""No"")"
Range("D2").Formula = F
Range("D2").AutoFill Destination:=Range("D2:D" & D2), Type:=xlFillDefault
0
M-12 Messages postés 1332 Date d'inscription   Statut Membre Dernière intervention   285 > gexelpas
 
Re,

Il ne faut pas confondre DL (pour Dernière Ligne) et D2, tu prend en Variable une adresse de cellule (D2)
Dim F As String
Dim DL As Integer
DL = Sheets("Originelle (2)").Range("A" & Rows.Count).End(xlUp).Row
F = "=IF(OR(RC[31]=""SALES REGULAR"",RC[31]=""SALES DEMO/USED""),IF(OR(RC[5]=""Budget2019"",RC[5]=""Budget2020""),""No"",IF(RC[16]=""TK"",""No"",IF(RC[-1]=""US"",""No"",IF(OR(RC[45]<>0,RC[40]<>0),""Yes"",IF(OR(RC[30]=""ACCESSORIES"",RC[30]=""CREDIT"",RC[30]=""DIN"",RC[30]=""SERVICE""),""No"",""Yes""))))),""No"")"
Range("D2").Formula = F
Range("D2").AutoFill Destination:=Range("D2:D" & DL), Type:=xlFillDefault
0