j'ai essaier d'inserer dans une zone de cellule dans une colonne en incrementant l'adresse de cellule a l'interieur de ma formule, mais ça ne fonctionne pas.
Voici mon bout de code avec la formule:
VB:
ligne = Val(Mid(AdresCel, 4, 1))
Range(AdresCel).Formula = "=SI(F" & ligne & "="";"";ARRONDI.SUP(H" & ligne & "*RECHERCHEV(E" & ligne & ";Identification!F$9:H$276;3;FAUX);0))"
Pour info la formule d'origine est celle ci :
=SI(F5="";"";ARRONDI.SUP(H5*RECHERCHEV(E5;Identification!F$9:H$276;3;FAUX);0))
Vba n'aime pas le français, voila la traduction littérale de ton code, quant à savoir si cela donnera ce que tu attends, sans fichier exemple, impossible de le savoir
Bien cordialement, @+
VB:
Range(AdresCel).FormulaR1C1 = "=IF(R" & ligne & "C[5]="""","""",ROUNDUP(R" & ligne & "C[7]*VLOOKUP(R" & ligne & "C[4],Identification!R9C[5]:R276C[7],3,FALSE),0))"
j'ai écris en coordonnées RC, R les lignes, C les colonnes, l'équivalent de Cells(ligne,colonne)
en exemple, la cellule A1 est R1C1 en absolu, l'équivalent de $A$1 , la cellule B1 est R1C2 en absolu
quand le chiffre est entre croches veut dire que la coordonnée est relative à la cellule contenant la formule
quand il n'y a pas de chiffre, même colonne ou même ligne selon sur R ou sur C que la cellule contenant la formule.
plus pratique comme cela quand on travaille avec Cells et Offset en Vba
j'ai gardé ton param ligne pour respecter ta commande mais celle la fait la même chose, pas besoin de spécifier la ligne puisque c'est la même.
tu peux par contre avoir un problème avec ton tableau de recherche qui n'est pas fixe mais sans fichier, impossible de savoir si c'est normal ou une erreur
Si vous voulez utiliser la française syntaxe, au lieu d'utiliser .Formula, utiliser .FormulaLocal
Après, sans fichier, on ne sait pas si votre formule est correcte.
Concernant le recours à une boucle, il y a de grandes chances qu'on puisse s'en passer, mais sans fichier... Toutefois voici trois exemples de ce qu'on peux faire :
VB:
Sub Essai()
Range("a1").FormulaLocal = "=max(ligne(a1);10)"
Range("a1").AutoFill Destination:=Range("a1:a30")
End Sub
ou
[CODE=vb]Sub Essai()
Range("a1").FormulaLocal = "=max(ligne(a1);10)"
Range("a1:a30").Formula = Range("a1").Formula
End Sub
ou
VB:
Sub essai3()
Range("a1:a30").FormulaLocal = "=max(ligne(a1);10)"
End Sub
Bonsoir,
Comme prévu voici le fichier
J'ai trouvé a le faire fonctionner, mai si vous pouvez donner votre avis sur mon code.
Mon code sélectionne les cellule de la colonne "I" sans formule pour en mettre une et ceci dans les 3 feuilles
Merci d'avance
Et merci a vous deux
Pour exécuter le code il faut la lancer dans VBA editor dans le module 1