A voir également:
- [Vb] Macro sous excel besoin d'aide
- Liste déroulante excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Vb cable - Télécharger - Audio & Musique
- Si et excel - Guide
8 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 691
22 mars 2005 à 22:37
22 mars 2005 à 22:37
bonsoir
dim var1
var 1 = bonjour
msgbox "var1"
tu as un problème de syntaxe car il faut écrire :
dim var1
var1 =" bonjour"
msgbox var1
et là çà fonctionne car les guillemets entourent
un libelle mais pas une variable.
"=SERIE(feuille1!B$1$:B$20$;feuille2!D$1$:D$20$)
pour trouver la dernière cellule non vide tu as :
Dim lig1, lig2
lig1 = Worksheets("feuil1").Range("B1").End(xlDown).address
lig2 = Worksheets("feuil1").Range("D1").End(xlDown).address
puis l'utilisation :
"feuille1!B$1$:" & lig1 & ";feuille2!D$1$:" & lig2
c'est bon ?
sinon continue tes questions.
dim var1
var 1 = bonjour
msgbox "var1"
tu as un problème de syntaxe car il faut écrire :
dim var1
var1 =" bonjour"
msgbox var1
et là çà fonctionne car les guillemets entourent
un libelle mais pas une variable.
"=SERIE(feuille1!B$1$:B$20$;feuille2!D$1$:D$20$)
pour trouver la dernière cellule non vide tu as :
Dim lig1, lig2
lig1 = Worksheets("feuil1").Range("B1").End(xlDown).address
lig2 = Worksheets("feuil1").Range("D1").End(xlDown).address
puis l'utilisation :
"feuille1!B$1$:" & lig1 & ";feuille2!D$1$:" & lig2
c'est bon ?
sinon continue tes questions.
J'ai un autre problème.
En faite voici le programme :
dim lig1, lig2
lig1 = Worksheets("getHistoricPortfolioNetvalue1").Range("C2").End(xlDown).Adress
lig2 = Worksheets("getHistoricPortfolioNetvalue1").Range("E2").End(xlDown).Adress
' Ensuite la modification de la formule, je l'ai faite de cette facon, j'ai enregistré une macro et j'ai modifié la formule à la main, j'ai récupéré le code
ActiveChart.SeriesCollection(1).Formula = _
"=SERIES('reporting mensuel'!R51C9,getHistoricPortfolioNetvalue1!R2C3:R23C3,gethistoricPortfolioNetValue1!R2C5:R23C5,1)"
J'ai mis les vrais noms des feuilles.
Y a quelque chose que je comprend pas, pourquoi ce format R51C9 ???? et pas J51 ?
Ensuite la formule n'accepte pas le format de type B1.
Dernière question la syntaxe exacte pour placer une variable dans un code entre "" est - "bonjour je m'appelle "&var1&"" - ??? Parce que j'ai essayé plusieurs combinaises mais y a un problème avec les ""
En faite voici le programme :
dim lig1, lig2
lig1 = Worksheets("getHistoricPortfolioNetvalue1").Range("C2").End(xlDown).Adress
lig2 = Worksheets("getHistoricPortfolioNetvalue1").Range("E2").End(xlDown).Adress
' Ensuite la modification de la formule, je l'ai faite de cette facon, j'ai enregistré une macro et j'ai modifié la formule à la main, j'ai récupéré le code
ActiveChart.SeriesCollection(1).Formula = _
"=SERIES('reporting mensuel'!R51C9,getHistoricPortfolioNetvalue1!R2C3:R23C3,gethistoricPortfolioNetValue1!R2C5:R23C5,1)"
J'ai mis les vrais noms des feuilles.
Y a quelque chose que je comprend pas, pourquoi ce format R51C9 ???? et pas J51 ?
Ensuite la formule n'accepte pas le format de type B1.
Dernière question la syntaxe exacte pour placer une variable dans un code entre "" est - "bonjour je m'appelle "&var1&"" - ??? Parce que j'ai essayé plusieurs combinaises mais y a un problème avec les ""
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 691
23 mars 2005 à 14:44
23 mars 2005 à 14:44
bonjour
ton tableau est en notation L1C1 et donc récupére la ligne(row) :
lig1 = Worksheets("getHistoricPortfolioNetvalue1").Range("C2").End(xlDown).row
lig2 = Worksheets("getHistoricPortfolioNetvalue1").Range("E2").End(xlDown).row
ActiveChart.SeriesCollection(1).Formula = _
"=SERIES('reporting mensuel'!R51C9,getHistoricPortfolioNetvalue1!R2C3:R" & lig1 & "C3,gethistoricPortfolioNetValue1!R2C5:R" & lig1 & "C5,1)"
"bonjour je m'appelle "&var1&""
"bonjour je m'appelle " & var1
le guillemet entoure le libellé et & (entre 2 espaces)
associe les libelles et les variables :
cells(1,1).value = "Je m'appelle " & varnom & " et j'ai " & varage & " ans"
ton tableau est en notation L1C1 et donc récupére la ligne(row) :
lig1 = Worksheets("getHistoricPortfolioNetvalue1").Range("C2").End(xlDown).row
lig2 = Worksheets("getHistoricPortfolioNetvalue1").Range("E2").End(xlDown).row
ActiveChart.SeriesCollection(1).Formula = _
"=SERIES('reporting mensuel'!R51C9,getHistoricPortfolioNetvalue1!R2C3:R" & lig1 & "C3,gethistoricPortfolioNetValue1!R2C5:R" & lig1 & "C5,1)"
"bonjour je m'appelle "&var1&""
"bonjour je m'appelle " & var1
le guillemet entoure le libellé et & (entre 2 espaces)
associe les libelles et les variables :
cells(1,1).value = "Je m'appelle " & varnom & " et j'ai " & varage & " ans"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Lorsque j'exécute la macro de nouveau, ca me dit variable objet non défini ou variable with non défini, c'est un message d'erreur de ce type.
Ca te dit quelque chose ?
J'ai une question pourquoi le tableau est en notation row ?
Et pourquoi des fois il y a B1 et B$1$, que signifie les "$" ?
Ca te dit quelque chose ?
J'ai une question pourquoi le tableau est en notation row ?
Et pourquoi des fois il y a B1 et B$1$, que signifie les "$" ?
J'ai compris mon erreurrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr !!
En faite j'ai mis une commande qui m'oblige à sélectionner le graphique avec la souris si je souhaite faire des modifs.
Je me disais bien, comment la macro arrive a distinguer le graphique sur lequel elle doit modifier la formule. (jai rectifié ce problème)
Voici ma formule finale mais y a un autre message d"erreur :
"Impossible de définir la propriété formula pour la classe series"
Voici mon code source :
Sub Macro6()
' Macro6 Macro
' Macro enregistrée le 22/03/2005 par wfrp
'
Dim lig1, lig2
lig1 = Worksheets("getHistoricPortfolioNetValue1").Range("C2").End(xlDown).Address
lig2 = Worksheets("getHistoricPortfolioNetValue1").Range("E2").End(xlDown).Address
ActiveSheet.ChartObjects("Graphique 46").Activate
ActiveChart.SeriesCollection(1).Formula = _
"=SERIES('reporting mensuel'!R51C9,getHistoricPortfolioNetValue1!R2C3:R" & lig1 & "C3,getHistoricPortfolioNetValue1!R2C5:R" & lig2 & "C5,1)"
End Sub
Je sens qu'on est proche du but.
En faite j'ai mis une commande qui m'oblige à sélectionner le graphique avec la souris si je souhaite faire des modifs.
Je me disais bien, comment la macro arrive a distinguer le graphique sur lequel elle doit modifier la formule. (jai rectifié ce problème)
Voici ma formule finale mais y a un autre message d"erreur :
"Impossible de définir la propriété formula pour la classe series"
Voici mon code source :
Sub Macro6()
' Macro6 Macro
' Macro enregistrée le 22/03/2005 par wfrp
'
Dim lig1, lig2
lig1 = Worksheets("getHistoricPortfolioNetValue1").Range("C2").End(xlDown).Address
lig2 = Worksheets("getHistoricPortfolioNetValue1").Range("E2").End(xlDown).Address
ActiveSheet.ChartObjects("Graphique 46").Activate
ActiveChart.SeriesCollection(1).Formula = _
"=SERIES('reporting mensuel'!R51C9,getHistoricPortfolioNetValue1!R2C3:R" & lig1 & "C3,getHistoricPortfolioNetValue1!R2C5:R" & lig2 & "C5,1)"
End Sub
Je sens qu'on est proche du but.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 691
23 mars 2005 à 19:18
23 mars 2005 à 19:18
bonjour
ton tableau est en notation L1C1 et donc récupére la ligne(row) :
lig1 = Worksheets("getHistoricPortfolioNetvalue1").Range("C2").End(xlDown).row
lig2 = Worksheets("getHistoricPortfolioNetvalue1").Range("E2").End(xlDown).row
Dans le message 4, tu n'a pas tenu compte de cette information.
comme tu es en notation L1C1, il ne faut pas récupérer l'adresse
mais seulement la ligne.
bon courage.
ton tableau est en notation L1C1 et donc récupére la ligne(row) :
lig1 = Worksheets("getHistoricPortfolioNetvalue1").Range("C2").End(xlDown).row
lig2 = Worksheets("getHistoricPortfolioNetvalue1").Range("E2").End(xlDown).row
Dans le message 4, tu n'a pas tenu compte de cette information.
comme tu es en notation L1C1, il ne faut pas récupérer l'adresse
mais seulement la ligne.
bon courage.
Mission accomplie.
J'ai une deuxième macro à réaliser.
Si tu aurais des sites en francais qui pourrait m'aider également ca m'évite de te déranger.
Ma deuxième macro doit prendre la dernière cellule de la colonne C3 c'est une colonne ou il n'y a que des dates.
Et j'aimerais avoir une variable qui retire 3 mois au résultat de la dernière cellule.
Dim lig3, lig4
lig3 = worksheetsxxC3xx.Address
lig4 = lig3 - 3 mois => cette ligne pose problème, j'ai réussi à soustraire des jours mais pas des mois.
Merci d'avance.
J'ai une deuxième macro à réaliser.
Si tu aurais des sites en francais qui pourrait m'aider également ca m'évite de te déranger.
Ma deuxième macro doit prendre la dernière cellule de la colonne C3 c'est une colonne ou il n'y a que des dates.
Et j'aimerais avoir une variable qui retire 3 mois au résultat de la dernière cellule.
Dim lig3, lig4
lig3 = worksheetsxxC3xx.Address
lig4 = lig3 - 3 mois => cette ligne pose problème, j'ai réussi à soustraire des jours mais pas des mois.
Merci d'avance.