Aide sur l'utilisation de fonctions / coordonnées de cellules en VBA

Bonjour à toutes et tous,
je débute totalement en VBA pour excel et je bricole assez bien... mais là je sèche sur un souci :

                        derniereligne = Range("A" & Rows.Count).End(xlUp).Row
                        For j = 2 To derniereligne
                            If Range("B" & j).Value <> "" Then
                            Range("A" & j).Value = ActiveSheet.Name
                            coord = D&:&CStr(j)
                            ActiveSheet.Cells(j, 4).FormulaLocal = "=ARRONDI.AU.MULTIPLE(coord;5)"
                            End If                          
                        Next j

En gros, après avoir rempli toutes les cellules de la colonne A (correspondant à une ligne de données non vide) avec le nom de l'onglet,
je voudrais remplir une colonne (la D) avec un arrondi au multiple de la case de la même ligne sur la colonne C.
En plus clair, que la cellule D:j ait pour valeur l'arrondi de la C:j.
J'ai cru qu'il me fallait passer par une chaine de caractères et j'ai donc créé la variable coord pour faire ça, mais ça ne marche pas...

Bref,
je suis un peu paumé,
si ça n'est pas clair,
dites moi

Merci d'avance,

Adrien

re,

pour un débutant, c'est plus facile d'utiliser l'enregistreur des macros et de modifier le résultat qu'on y voit. Pour cela, vous ajoutez une formule dans la colonne A, par exemple, j'ai mis une bonne formule dans la cellule A4. Je démarre l'enregistreur, je sélectionne la cellule A4, je fais "F2" et je fais "Enter" et j'arrête l'enregistreur. Le résultat dans l'enregistreur sera quelque chose comme ceci ...

sub Macro1()
' Macro1 Macro
'

'
    Range("A4").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[1]<>"""",MROUND(RC[3],5),""-"")"
    Range("A5").Select
End Sub

Maintenant je suppose que vous voulez la formule dans la colonne A et vous copiez/collez la partie après "ActiveCell.FormulaR1C1 =" après "Cells(j, "A").FormulaR1C1 =, donc ici c'est "=IF(RC[1]<>"""",MROUND(RC[3],5),""-"")"

vers

Sub MaMacro()
     Dim DerniereLigne: DerniereLigne = Range("A" & Rows.Count).End(xlUp).Row

     For j = 2 To DerniereLigne
          If Range("B" & j).Value <> "" Then
                 Cells(j, "A").FormulaR1C1 = "=IF(RC[1]<>"""",MROUND(RC[3],5),""-"")"
          End If
     Next j
End Sub

Si cela ne fonctionne pas, téléchargez votre fichier avec des données anonymisées.

C'est étrange que vous voulez ajouter une formule pour certaines lignes et ne pas pour toutes.

Rechercher des sujets similaires à "aide utilisation fonctions coordonnees vba"