Faire une macro pour remplir les cellules d'une colonne automati

Fermé
painghou Messages postés 8 Date d'inscription mercredi 8 octobre 2008 Statut Membre Dernière intervention 14 novembre 2014 - 13 nov. 2014 à 14:19
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 - 14 nov. 2014 à 10:08
Bonjour,

Je souhaite dans une macro copier une formule dans les cellules d'une colonne "J" , uniquement si la cellule de la colonne "I" à gauche est non vide.
Et ce jusqu' à la dernière ligne remplie de la colonne "I".

Merci d'avance.
A voir également:

4 réponses

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
14 nov. 2014 à 07:40
Bonjour,

Sub CopieMaFormule()
Dim LigneDebut As Byte
Dim LigneFin As Long, Ligne As Long
Dim MaFormule As String
'Nom de la feuille (à adapter)
With Worksheets("Feuil1")
'Numéro de la première ligne de la plage à traiter
LigneDebut = 2
'Numéro de ligne de la dernière cellule renseignée dans la plage à traiter
LigneFin = .Range("I" & Rows.Count).End(xlUp).Row
'Formule à copier
MaFormule = "=TODAY()"
'Boucle sur la plage à traiter
For Ligne = LigneDebut To LigneFin
'Si la cellule de la colonne I n'est pas vide
If Not IsEmpty(.Range("I" & Ligne)) Then
'Copie la MaFormule dans la colonne J
.Range("J" & Ligne).Formula = MaFormule
End If
Next Ligne
End With
End Sub


A+
0
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 7 235
14 nov. 2014 à 08:15
Bonjour,

Pourquoi une macro pour ça ?
=si(J2="";"";ta_formule) n'est pas suffisant ?
eric
0
painghou Messages postés 8 Date d'inscription mercredi 8 octobre 2008 Statut Membre Dernière intervention 14 novembre 2014
14 nov. 2014 à 09:09
Bonjour,

Je veux faire autrement dans la macro de base j'appelle la macro suivante :

Sub formule()
'
'Copier la formule qui affiche le le libellé du code défaut
'
Dim calcul As Long
' Étiquette la ligne indiquant le haut de la boucle
Top:
' Teste pour voir si la première cellule est vide
If IsEmpty(ActiveCell) Then Exit Sub
ActiveCells = calcul
' Copie la formule
Sheets("Menu").Select
Range("J2").Select
Selection.Copy
'Coller la formule
Sheets("Defaut").Select
calcul
ActiveSheet.Paste
' Passe à la cellule suivant 1 ligne en dessous et une colonne à gauche
ActiveCell.Offset(-1, -1).Select
' Teste pour voir si la nouvelle cellule est vide.
If Not IsEmpty(ActiveCell) Then GoTo Top
End Sub

Je ne sais pas :
- calcul étant le repère d'une cellule (ex : I4), je ne sais pas comment dimensionner calcul
- je ne sait pas comment appeler "calcul" au moment voulu pour activer la position de la cellule mémorisée
- Je ne suis pas sûr de la façon dont il faille décaler ensuite de une ligne en dessous et d'une case à gauche.

Merci d'avance.
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
14 nov. 2014 à 10:08
Bonjour Painghou,

Plutôt que t'évertuer à exposer ce qui ne marche pas, il serait préférable que tu expliques ce que tu souhaites obtenir comme résultat.
Pour cela, le plus simple est de joindre un fichier avec quelques explications.
https://www.cjoint.com/

A+
0