Macro formule d'une autre feuille
Résolu
lol59
-
eriiic Messages postés 25847 Statut Contributeur -
eriiic Messages postés 25847 Statut Contributeur -
Bonjour,
Trouvant souvent des solutions sur ce site je tente ma chance
Je fais une macro qui consiste à copié une feuille la renommée et dans 2 cellules en modifiées le contenu
Dans ces cellules =
Cellule A4= autre feuille cellule A6
Comment faire pour passer à la cellule suivante à chaque fois ? je m'explique je lance la macro alors dans ma cellule A4 j'aimerai avoir = autre feuille cellule A7 et sa a chaque fois que je la lance
voici ce que j'ai fais pour le moment
Sheets("Feuil1").Select
Sheets("Feuil1").Copy After:=Sheets(2)
Range("A6").Select
ActiveCell.FormulaR1C1 = "=+BD!R[-2]C1+1"
Sheets("Feuil1").Select
ActiveSheet.Name = Sheets("Feuil1").Range("A6").Value
Sheets("Feuil1 (2)").Select
ActiveSheet.Name = "Feuil1"
Merci d'avance
Trouvant souvent des solutions sur ce site je tente ma chance
Je fais une macro qui consiste à copié une feuille la renommée et dans 2 cellules en modifiées le contenu
Dans ces cellules =
Cellule A4= autre feuille cellule A6
Comment faire pour passer à la cellule suivante à chaque fois ? je m'explique je lance la macro alors dans ma cellule A4 j'aimerai avoir = autre feuille cellule A7 et sa a chaque fois que je la lance
voici ce que j'ai fais pour le moment
Sheets("Feuil1").Select
Sheets("Feuil1").Copy After:=Sheets(2)
Range("A6").Select
ActiveCell.FormulaR1C1 = "=+BD!R[-2]C1+1"
Sheets("Feuil1").Select
ActiveSheet.Name = Sheets("Feuil1").Range("A6").Value
Sheets("Feuil1 (2)").Select
ActiveSheet.Name = "Feuil1"
Merci d'avance
A voir également:
- Macro formule d'une autre feuille
- Formule si et - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Formule moyenne excel plusieurs colonnes - Guide
- Formule mathématique - Télécharger - Études & Formations
- Bruler feuille de laurier - Guide
6 réponses
Par curiosité, tu as quelle version d'excel ?
Le code est dans la feuille BD :
Je n'ai mis qu'une seule formule en exemple, je te laisse compléter.
J'ai supprimé les noms que tu avais créé.
https://www.cjoint.com/?BEplNkmCyJg
eric
Le code est dans la feuille BD :
Sub créerFeuilles()
Dim lig As Long, shBD As Worksheet, sh As Worksheet
Set shBD = Worksheets("BD")
For lig = 4 To [A65536].End(xlUp).Row
If Not existSheet(shBD.Cells(lig, 1)) Then
' créer la feuille si elle n'existe pas
Sheets("Modèle").Copy After:=Sheets(Sheets.Count)
Set sh = ActiveSheet
' renommer feuille
sh.Name = shBD.Cells(lig, 1).Value
' inscription en dur
sh.[A6].Value = shBD.Cells(lig, 1).Value
' incription d'une formule
sh.[F12].FormulaLocal = "=BD!H" & lig
End If
Next lig
shBD.Activate
End Sub
Function existSheet(nomFeuille As String) As Boolean
On Error Resume Next
existSheet = Sheets(nomFeuille).Index
End Function
Je n'ai mis qu'une seule formule en exemple, je te laisse compléter.
J'ai supprimé les noms que tu avais créé.
https://www.cjoint.com/?BEplNkmCyJg
eric
Je n'ai pas tout compris à ton problème désolé. Mais l'enregistreur de macro devrait très bien faire cela, essaie!
Bonsoir,
oublie ton code imbuvable (en plus tu renommes tes feuilles dans tous les sens) et décris exactement ce que tu veux.
eric
oublie ton code imbuvable (en plus tu renommes tes feuilles dans tous les sens) et décris exactement ce que tu veux.
eric
Ce que j'essaye de faire j'ai une page BD avec environ 60 noms prénoms et d'autres infos en lançant la macro je veux qu'elle reprenne les infos et me créer la page suivante pour le moment j'ai réussi a créer une page et la renommée avec le nom de la personne ainsi que créer la page mais je n'arrive pas a automatisé les données.
Je pense que mon problème ce trouve ici
ActiveCell.FormulaR1C1 = "=+BD!R[-2]C1+1
Car cela me met #valeur#
Comment faire pour que la macro descende d'un cellule à chaque fois que je la lance
Je pense que mon problème ce trouve ici
ActiveCell.FormulaR1C1 = "=+BD!R[-2]C1+1
Car cela me met #valeur#
Comment faire pour que la macro descende d'un cellule à chaque fois que je la lance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Ok oublions de comprendre...
il faut que tu utilises une variable (cpt par exemple) que tu incrémentes de 1 à chaque fois.
Ta ligne deviendrait :
cpt=cpt+1
ActiveCell.FormulaR1C1 = "=+BD!R[-2]C1+cpt
Si ça se passe dans une boucle tout va bien.
Seulement si tu appelles ta macro à chaque ligne, cpt démarrera toujours à 0.
Dans ce cas il faut la déclarer en dehors du module si tu veux qu'elle conserve sa valeur entre 2 appels.
ex :
eric
Ok oublions de comprendre...
il faut que tu utilises une variable (cpt par exemple) que tu incrémentes de 1 à chaque fois.
Ta ligne deviendrait :
cpt=cpt+1
ActiveCell.FormulaR1C1 = "=+BD!R[-2]C1+cpt
Si ça se passe dans une boucle tout va bien.
Seulement si tu appelles ta macro à chaque ligne, cpt démarrera toujours à 0.
Dans ce cas il faut la déclarer en dehors du module si tu veux qu'elle conserve sa valeur entre 2 appels.
ex :
Dim cpt As Long
Sub test()
cpt = cpt + 1
MsgBox (cpt)
End Sub
eric
j'ai un peu de mal
Dim cpt As Long
Sub Macro1()
'
' Macro1 Macro
'
'
Sheets("Feuil1").Select
Sheets("Feuil1").Copy After:=Sheets(2)
Range("A6").Select
cpt = cpt + 1
MsgBox (cpt)
ActiveCell.FormulaR1C1 = "=+BD!R[-2]C1+cpt"
Sheets("Feuil1").Select
ActiveSheet.Name = Sheets("Feuil1").Range("A6").Value
Sheets("Feuil1 (2)").Select
ActiveSheet.Name = "Feuil1"
ActiveWindow.SmallScroll Down:=15
Je peux t'envoyer mon fichier test si tu veux
Dim cpt As Long
Sub Macro1()
'
' Macro1 Macro
'
'
Sheets("Feuil1").Select
Sheets("Feuil1").Copy After:=Sheets(2)
Range("A6").Select
cpt = cpt + 1
MsgBox (cpt)
ActiveCell.FormulaR1C1 = "=+BD!R[-2]C1+cpt"
Sheets("Feuil1").Select
ActiveSheet.Name = Sheets("Feuil1").Range("A6").Value
Sheets("Feuil1 (2)").Select
ActiveSheet.Name = "Feuil1"
ActiveWindow.SmallScroll Down:=15
Je peux t'envoyer mon fichier test si tu veux