Bonjour,
J'ai fait une macro avec un userform qui demande à l'utilisateur un nom
(nom_affaire dans le code), puis la macro crée une nouvelle feuille dans le
classeur nommée nom_affaire, puis crée une colonne dans une page synthese ou
les données de la page crée sont reportées.
J'ai 2 problemes:
1) Je n'arrive pas à remplir la nouvelle colonne de la page synthese avec
les données de la feuille nom_affaire que j'ai crée, il doit y avoir un
probleme de reference là :
Dim nom_affaire As String
nom_affaire = Boite_nom_affaire.TextBox1.Value
Sheets("Synthese").Select
Columns("D:D").Select
Selection.Insert Shift:=xlToRight ' insertion de la nouvelle colonne
Range("D3").Select
ActiveCell.FormulaR1C1 = nom_affaire 'report du nom de l'affaire en tete
de la colonne (ça, ça marche)
Range("D4").Select
ActiveCell.FormulaR1C1 = Sheets(nom_affaire).Range("M4") 'là ça ne
marche plus, ça met 0 dans la cellule
2) Je veux faire la somme des données de la feuille synthese, en
agrandissant la zone de la somme vu que j'ai ajouté une colonne :
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
bonjour tootwi,
essai comme ça, ActiveCell.Formula = Sheets(nom_affaire).Range("M4")
n'oubli pas de vérifier si la valeur de la variable nom_affaire est bien égale au nom de la feuille.
isabelle
Bonjour, J'ai fait une macro avec un userform qui demande à l'utilisateur un nom (nom_affaire dans le code), puis la macro crée une nouvelle feuille dans le classeur nommée nom_affaire, puis crée une colonne dans une page synthese ou les données de la page crée sont reportées.
J'ai 2 problemes: 1) Je n'arrive pas à remplir la nouvelle colonne de la page synthese avec les données de la feuille nom_affaire que j'ai crée, il doit y avoir un probleme de reference là :
Dim nom_affaire As String nom_affaire = Boite_nom_affaire.TextBox1.Value
Sheets("Synthese").Select Columns("D:D").Select Selection.Insert Shift:=xlToRight ' insertion de la nouvelle colonne Range("D3").Select ActiveCell.FormulaR1C1 = nom_affaire 'report du nom de l'affaire en tete de la colonne (ça, ça marche) Range("D4").Select ActiveCell.FormulaR1C1 = Sheets(nom_affaire).Range("M4") 'là ça ne marche plus, ça met 0 dans la cellule
2) Je veux faire la somme des données de la feuille synthese, en agrandissant la zone de la somme vu que j'ai ajouté une colonne :
Donc là ça marche pas du tout, il lance le debogeur
(j'ai essayé aussi ActiveCell.FormulaR1C1 = "=SUM(D4:Cells(4, ActiveSheet.UsedRange.Columns.Count))" et ça marche pas, il met un #NOM?
Je suis débutante, donc je pense que ça doit etre des problemes de syntaxe, mais je sais pas du comment corriger ça, alors merci de votre aide!
tootwi
bonjour tootwi,
essai comme ça,
ActiveCell.Formula = Sheets(nom_affaire).Range("M4")
n'oubli pas de vérifier si la valeur de la variable nom_affaire est bien égale au nom de la feuille.
isabelle
Bonjour,
J'ai fait une macro avec un userform qui demande à l'utilisateur un nom
(nom_affaire dans le code), puis la macro crée une nouvelle feuille dans le
classeur nommée nom_affaire, puis crée une colonne dans une page synthese ou
les données de la page crée sont reportées.
J'ai 2 problemes:
1) Je n'arrive pas à remplir la nouvelle colonne de la page synthese avec
les données de la feuille nom_affaire que j'ai crée, il doit y avoir un
probleme de reference là :
Dim nom_affaire As String
nom_affaire = Boite_nom_affaire.TextBox1.Value
Sheets("Synthese").Select
Columns("D:D").Select
Selection.Insert Shift:=xlToRight ' insertion de la nouvelle colonne
Range("D3").Select
ActiveCell.FormulaR1C1 = nom_affaire 'report du nom de l'affaire en tete
de la colonne (ça, ça marche)
Range("D4").Select
ActiveCell.FormulaR1C1 = Sheets(nom_affaire).Range("M4") 'là ça ne
marche plus, ça met 0 dans la cellule
2) Je veux faire la somme des données de la feuille synthese, en
agrandissant la zone de la somme vu que j'ai ajouté une colonne :
essai comme ça, ActiveCell.Formula = Sheets(nom_affaire).Range("M4")
n'oubli pas de vérifier si la valeur de la variable nom_affaire est bien égale au nom de la feuille.
isabelle
Bonjour, J'ai fait une macro avec un userform qui demande à l'utilisateur un nom (nom_affaire dans le code), puis la macro crée une nouvelle feuille dans le classeur nommée nom_affaire, puis crée une colonne dans une page synthese ou les données de la page crée sont reportées.
J'ai 2 problemes: 1) Je n'arrive pas à remplir la nouvelle colonne de la page synthese avec les données de la feuille nom_affaire que j'ai crée, il doit y avoir un probleme de reference là :
Dim nom_affaire As String nom_affaire = Boite_nom_affaire.TextBox1.Value
Sheets("Synthese").Select Columns("D:D").Select Selection.Insert Shift:=xlToRight ' insertion de la nouvelle colonne Range("D3").Select ActiveCell.FormulaR1C1 = nom_affaire 'report du nom de l'affaire en tete de la colonne (ça, ça marche) Range("D4").Select ActiveCell.FormulaR1C1 = Sheets(nom_affaire).Range("M4") 'là ça ne marche plus, ça met 0 dans la cellule
2) Je veux faire la somme des données de la feuille synthese, en agrandissant la zone de la somme vu que j'ai ajouté une colonne :
Donc là ça marche pas du tout, il lance le debogeur
(j'ai essayé aussi ActiveCell.FormulaR1C1 = "=SUM(D4:Cells(4, ActiveSheet.UsedRange.Columns.Count))" et ça marche pas, il met un #NOM?
Je suis débutante, donc je pense que ça doit etre des problemes de syntaxe, mais je sais pas du comment corriger ça, alors merci de votre aide!
tootwi
AV
Pour le 1° : With Sheets("Synthese") .[D:D].Insert Shift:=xlToRight .[D3] = nom_affaire .[D4] = [nom_affaire!M4] End With
Pour le 2° la syntaxe pourrait avoir cette allure la : Si tu veux la formule dans la cellule : [C4] = "=Sum(D4:D" & laVar & ")" Si tu veux le résultat dans la cellule : [C4] = Evaluate("Sum(D4:D" & laVar & ")")
AV
Pour le 1° :
With Sheets("Synthese")
.[D:D].Insert Shift:=xlToRight
.[D3] = nom_affaire
.[D4] = [nom_affaire!M4]
End With
Pour le 2°
la syntaxe pourrait avoir cette allure la :
Si tu veux la formule dans la cellule :
[C4] = "=Sum(D4:D" & laVar & ")"
Si tu veux le résultat dans la cellule :
[C4] = Evaluate("Sum(D4:D" & laVar & ")")
Pour le 1° : With Sheets("Synthese") .[D:D].Insert Shift:=xlToRight .[D3] = nom_affaire .[D4] = [nom_affaire!M4] End With
Pour le 2° la syntaxe pourrait avoir cette allure la : Si tu veux la formule dans la cellule : [C4] = "=Sum(D4:D" & laVar & ")" Si tu veux le résultat dans la cellule : [C4] = Evaluate("Sum(D4:D" & laVar & ")")
AV
tootwi
merci pour votre aide, mais la ligne .[D4] = [nom_affaire!M4] ne fonctionne pas, la cellule [D4] contient un #VALEUR! et n'indique pas la reference à la page nom_affaire Pour la somme, la macro ne renvoie plus de message d'erreur, mais c'est une somme sur la colonne, et je voudrais une somme sur la ligne, c'est pourquoi j'avais utilisé la notation R[]C[] ([C4] = "=Sum(R[1]C[2]:R[1]C[ & nbreaffaires] )"), mais ça renvoie un message d'erreur "erreur d'applicaiton 1004; erreur définir par l'application ou par l'objet"
Pour le 1° : With Sheets("Synthese") .[D:D].Insert Shift:=xlToRight .[D3] = nom_affaire .[D4] = [nom_affaire!M4] End With
Pour le 2° la syntaxe pourrait avoir cette allure la : Si tu veux la formule dans la cellule : [C4] = "=Sum(D4:D" & laVar & ")" Si tu veux le résultat dans la cellule : [C4] = Evaluate("Sum(D4:D" & laVar & ")")
AV
merci pour votre aide, mais la ligne .[D4] = [nom_affaire!M4] ne fonctionne
pas, la cellule [D4] contient un #VALEUR! et n'indique pas la reference à la
page nom_affaire
Pour la somme, la macro ne renvoie plus de message d'erreur, mais c'est une
somme sur la colonne, et je voudrais une somme sur la ligne, c'est pourquoi
j'avais utilisé la notation R[]C[] ([C4] = "=Sum(R[1]C[2]:R[1]C[ &
nbreaffaires] )"), mais ça renvoie un message d'erreur "erreur d'applicaiton
1004; erreur définir par l'application ou par l'objet"
Pour le 1° :
With Sheets("Synthese")
.[D:D].Insert Shift:=xlToRight
.[D3] = nom_affaire
.[D4] = [nom_affaire!M4]
End With
Pour le 2°
la syntaxe pourrait avoir cette allure la :
Si tu veux la formule dans la cellule :
[C4] = "=Sum(D4:D" & laVar & ")"
Si tu veux le résultat dans la cellule :
[C4] = Evaluate("Sum(D4:D" & laVar & ")")
merci pour votre aide, mais la ligne .[D4] = [nom_affaire!M4] ne fonctionne pas, la cellule [D4] contient un #VALEUR! et n'indique pas la reference à la page nom_affaire Pour la somme, la macro ne renvoie plus de message d'erreur, mais c'est une somme sur la colonne, et je voudrais une somme sur la ligne, c'est pourquoi j'avais utilisé la notation R[]C[] ([C4] = "=Sum(R[1]C[2]:R[1]C[ & nbreaffaires] )"), mais ça renvoie un message d'erreur "erreur d'applicaiton 1004; erreur définir par l'application ou par l'objet"
Pour le 1° : With Sheets("Synthese") .[D:D].Insert Shift:=xlToRight .[D3] = nom_affaire .[D4] = [nom_affaire!M4] End With
Pour le 2° la syntaxe pourrait avoir cette allure la : Si tu veux la formule dans la cellule : [C4] = "=Sum(D4:D" & laVar & ")" Si tu veux le résultat dans la cellule : [C4] = Evaluate("Sum(D4:D" & laVar & ")")
AV
AV
merci pour votre aide, mais la ligne .[D4] = [nom_affaire!M4] ne fonctionne pas, la cellule [D4] contient un #VALEUR!
Cette instruction renvoie le contenu de la cellule M4 de la feuille "nom_affaire" Donc.... sous réserve que cette feuille existe (attention à l'orthographe), si le résultat est #VALEUR ce que la dite cellule source contient cette même valeur d'erreur !
Pour la somme, la macro ne renvoie plus de message d'erreur, mais c'est une somme sur la colonne, et je voudrais une somme sur la ligne,
[C4] = "=Sum(D4:" & Cells(4, laVar).Address & ")" ou bien : [C4] = Evaluate("=Sum(D4:" & Cells(4, laVar).Address & ")")
AV
merci pour votre aide, mais la ligne .[D4] = [nom_affaire!M4] ne fonctionne
pas, la cellule [D4] contient un #VALEUR!
Cette instruction renvoie le contenu de la cellule M4 de la feuille
"nom_affaire"
Donc.... sous réserve que cette feuille existe (attention à l'orthographe), si
le résultat est #VALEUR ce que la dite cellule source contient cette même valeur
d'erreur !
Pour la somme, la macro ne renvoie plus de message d'erreur, mais c'est une
somme sur la colonne, et je voudrais une somme sur la ligne,
[C4] = "=Sum(D4:" & Cells(4, laVar).Address & ")"
ou bien :
[C4] = Evaluate("=Sum(D4:" & Cells(4, laVar).Address & ")")
merci pour votre aide, mais la ligne .[D4] = [nom_affaire!M4] ne fonctionne pas, la cellule [D4] contient un #VALEUR!
Cette instruction renvoie le contenu de la cellule M4 de la feuille "nom_affaire" Donc.... sous réserve que cette feuille existe (attention à l'orthographe), si le résultat est #VALEUR ce que la dite cellule source contient cette même valeur d'erreur !
Pour la somme, la macro ne renvoie plus de message d'erreur, mais c'est une somme sur la colonne, et je voudrais une somme sur la ligne,
[C4] = "=Sum(D4:" & Cells(4, laVar).Address & ")" ou bien : [C4] = Evaluate("=Sum(D4:" & Cells(4, laVar).Address & ")")
AV
tootwi
Merci AV pour la formule de somme sur la ligne, ça marche là!
Mais pour la ligne .[D4] = [nom_affaire!M4], ça renvoie la valeur de la feuille nom_affaire au moment ou la macro fonctionne, mais cette page doit etre remplie après l'execution de la macro, donc il faudrait que ça soit une reférence à la cellule. Et le probleme c'est que nom_affaire est la valeur du textbox de ma macro, donc je sais pas si c'est possible...
Merci AV pour la formule de somme sur la ligne, ça marche là!
Mais pour la ligne .[D4] = [nom_affaire!M4], ça renvoie la valeur de la
feuille nom_affaire au moment ou la macro fonctionne, mais cette page doit
etre remplie après l'execution de la macro, donc il faudrait que ça soit une
reférence à la cellule.
Et le probleme c'est que nom_affaire est la valeur du textbox de ma macro,
donc je sais pas si c'est possible...
Merci AV pour la formule de somme sur la ligne, ça marche là!
Mais pour la ligne .[D4] = [nom_affaire!M4], ça renvoie la valeur de la feuille nom_affaire au moment ou la macro fonctionne, mais cette page doit etre remplie après l'execution de la macro, donc il faudrait que ça soit une reférence à la cellule. Et le probleme c'est que nom_affaire est la valeur du textbox de ma macro, donc je sais pas si c'est possible...