slt,
un prb de reporting avec macros.
Soit un premier fichier qui contient la liste des mois Janvier à Décembre
dans a1:a12(fichier1, feuil1)
Soit un deuxième fichier, feuil2, cellule qui A1 peut contenir soit janvier
soit février soit mars...jusqu'à décembre et en B1 un total. (ici je n'écris
que dans la cellule A1 et B1)
Mon prb : je dois exporter le total de B1 dans le premier fichier et dans le
mois correspondant. Comment "repérer" le mois ?
Autrement dit :
si fichier2/feuil2/a1=janvier alors écrire dans fichier1/feuil1/b1,
si fichier2/feuil2/a1=février alors écrire dans fichier1/feuil1/b2,
si fichier2/feuil2/a1=mars alors écrire dans fichier1/feuil1/b3...
est-il possible de faire ça sans imbriquer 12 fonction In...End if ?
merci
a+
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
FdeCourt
Salut,
Il va bien falloir determiner dans quelle colonne tu vas mettre le résultat, et comme cela dépend du mois, il faudrat l'indiquer à Excel (pas sur qu'il sache que "mars" est 3, ou "décembre" = 12)
Au lieu de faire de If, tu peux utiliser Select Case :
Select Case LCase(Cells(1, 1).Value) Case "janvier": col = 1 Case "février": col = 2 Case "mars": col = 3 Case "avril": col = 4 Case "mai": col = 5 Case "juin": col = 6 Case "juillet": col = 7 Case "aout": col = 8 Case "septembre": col = 9 Case "octobre": col = 10 Case "novembre": col = 11 Case "decembre": col = 12 End Select
Ici, col represente une variable qui indique dans quel colonne mettre le résultat. Le chemin d'acces des cellules ne doit plus être B1 dans ton code, comme range("B1"), mais Cells(1, 2), ou tu remplacerais le 2 par col.
Cordialement,
F.
Salut,
Il va bien falloir determiner dans quelle colonne tu vas mettre le
résultat, et comme cela dépend du mois, il faudrat l'indiquer à Excel
(pas sur qu'il sache que "mars" est 3, ou "décembre" = 12)
Au lieu de faire de If, tu peux utiliser Select Case :
Select Case LCase(Cells(1, 1).Value)
Case "janvier": col = 1
Case "février": col = 2
Case "mars": col = 3
Case "avril": col = 4
Case "mai": col = 5
Case "juin": col = 6
Case "juillet": col = 7
Case "aout": col = 8
Case "septembre": col = 9
Case "octobre": col = 10
Case "novembre": col = 11
Case "decembre": col = 12
End Select
Ici, col represente une variable qui indique dans quel colonne mettre
le résultat.
Le chemin d'acces des cellules ne doit plus être B1 dans ton code,
comme range("B1"), mais Cells(1, 2), ou tu remplacerais le 2 par col.
Il va bien falloir determiner dans quelle colonne tu vas mettre le résultat, et comme cela dépend du mois, il faudrat l'indiquer à Excel (pas sur qu'il sache que "mars" est 3, ou "décembre" = 12)
Au lieu de faire de If, tu peux utiliser Select Case :
Select Case LCase(Cells(1, 1).Value) Case "janvier": col = 1 Case "février": col = 2 Case "mars": col = 3 Case "avril": col = 4 Case "mai": col = 5 Case "juin": col = 6 Case "juillet": col = 7 Case "aout": col = 8 Case "septembre": col = 9 Case "octobre": col = 10 Case "novembre": col = 11 Case "decembre": col = 12 End Select
Ici, col represente une variable qui indique dans quel colonne mettre le résultat. Le chemin d'acces des cellules ne doit plus être B1 dans ton code, comme range("B1"), mais Cells(1, 2), ou tu remplacerais le 2 par col.
Cordialement,
F.
boblebob
slt et merci pour cette réponse, n'y aurait-il pas la possibilité de faire un truc du style RechercheV ce qui prendrait moins de place dans le code ? a+ "FdeCourt" a écrit dans le message de news:
Salut,
Il va bien falloir determiner dans quelle colonne tu vas mettre le résultat, et comme cela dépend du mois, il faudrat l'indiquer à Excel (pas sur qu'il sache que "mars" est 3, ou "décembre" = 12)
Au lieu de faire de If, tu peux utiliser Select Case :
Select Case LCase(Cells(1, 1).Value) Case "janvier": col = 1 Case "février": col = 2 Case "mars": col = 3 Case "avril": col = 4 Case "mai": col = 5 Case "juin": col = 6 Case "juillet": col = 7 Case "aout": col = 8 Case "septembre": col = 9 Case "octobre": col = 10 Case "novembre": col = 11 Case "decembre": col = 12 End Select
Ici, col represente une variable qui indique dans quel colonne mettre le résultat. Le chemin d'acces des cellules ne doit plus être B1 dans ton code, comme range("B1"), mais Cells(1, 2), ou tu remplacerais le 2 par col.
Cordialement,
F.
slt et merci pour cette réponse,
n'y aurait-il pas la possibilité de faire un truc du style RechercheV ce qui
prendrait moins de place dans le code ?
a+
"FdeCourt" <fdecourt@gmail.com> a écrit dans le message de news:
e2351904-0501-44ca-a463-239943dadee2@w7g2000hsa.googlegroups.com...
Salut,
Il va bien falloir determiner dans quelle colonne tu vas mettre le
résultat, et comme cela dépend du mois, il faudrat l'indiquer à Excel
(pas sur qu'il sache que "mars" est 3, ou "décembre" = 12)
Au lieu de faire de If, tu peux utiliser Select Case :
Select Case LCase(Cells(1, 1).Value)
Case "janvier": col = 1
Case "février": col = 2
Case "mars": col = 3
Case "avril": col = 4
Case "mai": col = 5
Case "juin": col = 6
Case "juillet": col = 7
Case "aout": col = 8
Case "septembre": col = 9
Case "octobre": col = 10
Case "novembre": col = 11
Case "decembre": col = 12
End Select
Ici, col represente une variable qui indique dans quel colonne mettre
le résultat.
Le chemin d'acces des cellules ne doit plus être B1 dans ton code,
comme range("B1"), mais Cells(1, 2), ou tu remplacerais le 2 par col.
slt et merci pour cette réponse, n'y aurait-il pas la possibilité de faire un truc du style RechercheV ce qui prendrait moins de place dans le code ? a+ "FdeCourt" a écrit dans le message de news:
Salut,
Il va bien falloir determiner dans quelle colonne tu vas mettre le résultat, et comme cela dépend du mois, il faudrat l'indiquer à Excel (pas sur qu'il sache que "mars" est 3, ou "décembre" = 12)
Au lieu de faire de If, tu peux utiliser Select Case :
Select Case LCase(Cells(1, 1).Value) Case "janvier": col = 1 Case "février": col = 2 Case "mars": col = 3 Case "avril": col = 4 Case "mai": col = 5 Case "juin": col = 6 Case "juillet": col = 7 Case "aout": col = 8 Case "septembre": col = 9 Case "octobre": col = 10 Case "novembre": col = 11 Case "decembre": col = 12 End Select
Ici, col represente une variable qui indique dans quel colonne mettre le résultat. Le chemin d'acces des cellules ne doit plus être B1 dans ton code, comme range("B1"), mais Cells(1, 2), ou tu remplacerais le 2 par col.
Cordialement,
F.
FdeCourt
Tu as la possibilité de faire une recherche :
quoi = Sheets("feuil2").Cells(1, 1).Value On Error Resume Next col = Sheets("Feuil1").Range("A1:L1").Find(quoi, Sheets("Feuil1").Range("A1"), _ xlFormulas, xlWhole, xlByColumns, xlNext, False, False).Column If Err <> 0 Then MsgBox "Colonne non trouvée"
Les paramètre de Find peuvent être simplifiés, mais dans ce cas cela prend les paramêtre de la dernière recherche, ce qui peut être génan (tous les mettre te permet de bien les controler).
Cordialement,
F.
Tu as la possibilité de faire une recherche :
quoi = Sheets("feuil2").Cells(1, 1).Value
On Error Resume Next
col = Sheets("Feuil1").Range("A1:L1").Find(quoi,
Sheets("Feuil1").Range("A1"), _
xlFormulas, xlWhole, xlByColumns, xlNext, False, False).Column
If Err <> 0 Then MsgBox "Colonne non trouvée"
Les paramètre de Find peuvent être simplifiés, mais dans ce cas cela
prend les paramêtre de la dernière recherche, ce qui peut être génan
(tous les mettre te permet de bien les controler).
quoi = Sheets("feuil2").Cells(1, 1).Value On Error Resume Next col = Sheets("Feuil1").Range("A1:L1").Find(quoi, Sheets("Feuil1").Range("A1"), _ xlFormulas, xlWhole, xlByColumns, xlNext, False, False).Column If Err <> 0 Then MsgBox "Colonne non trouvée"
Les paramètre de Find peuvent être simplifiés, mais dans ce cas cela prend les paramêtre de la dernière recherche, ce qui peut être génan (tous les mettre te permet de bien les controler).
Cordialement,
F.
Jacques ALARDET
Bonjour,
Je te propose une fonction simple, sans IF, ni CASE, ni boucle
Function Indice_mois(Mois As String) As Integer '_Calculer l'indice d'un mois Indice_mois = Month(CVDate(1 & " " & Mois & " 2000")) End Function
J a c q u e s
"bobaskis" a écrit dans le message de news:
slt, un prb de reporting avec macros. Soit un premier fichier qui contient la liste des mois Janvier à Décembre dans a1:a12(fichier1, feuil1)
Soit un deuxième fichier, feuil2, cellule qui A1 peut contenir soit janvier soit février soit mars...jusqu'à décembre et en B1 un total. (ici je n'écris que dans la cellule A1 et B1) Mon prb : je dois exporter le total de B1 dans le premier fichier et dans le mois correspondant. Comment "repérer" le mois ? Autrement dit : si fichier2/feuil2/a1=janvier alors écrire dans fichier1/feuil1/b1, si fichier2/feuil2/a1=février alors écrire dans fichier1/feuil1/b2, si fichier2/feuil2/a1=mars alors écrire dans fichier1/feuil1/b3... est-il possible de faire ça sans imbriquer 12 fonction In...End if ? merci a+
Bonjour,
Je te propose une fonction simple, sans IF, ni CASE, ni boucle
Function Indice_mois(Mois As String) As Integer
'_Calculer l'indice d'un mois
Indice_mois = Month(CVDate(1 & " " & Mois & "
2000"))
End Function
J a c q u e s
"bobaskis" <bobaskis@discussions.microsoft.com> a écrit dans le message de
news:81C4BA00-B0CD-4AE9-8F03-74C205E9DA06@microsoft.com...
slt,
un prb de reporting avec macros.
Soit un premier fichier qui contient la liste des mois Janvier à Décembre
dans a1:a12(fichier1, feuil1)
Soit un deuxième fichier, feuil2, cellule qui A1 peut contenir soit
janvier
soit février soit mars...jusqu'à décembre et en B1 un total. (ici je
n'écris
que dans la cellule A1 et B1)
Mon prb : je dois exporter le total de B1 dans le premier fichier et dans
le
mois correspondant. Comment "repérer" le mois ?
Autrement dit :
si fichier2/feuil2/a1=janvier alors écrire dans fichier1/feuil1/b1,
si fichier2/feuil2/a1=février alors écrire dans fichier1/feuil1/b2,
si fichier2/feuil2/a1=mars alors écrire dans fichier1/feuil1/b3...
est-il possible de faire ça sans imbriquer 12 fonction In...End if ?
merci
a+
Je te propose une fonction simple, sans IF, ni CASE, ni boucle
Function Indice_mois(Mois As String) As Integer '_Calculer l'indice d'un mois Indice_mois = Month(CVDate(1 & " " & Mois & " 2000")) End Function
J a c q u e s
"bobaskis" a écrit dans le message de news:
slt, un prb de reporting avec macros. Soit un premier fichier qui contient la liste des mois Janvier à Décembre dans a1:a12(fichier1, feuil1)
Soit un deuxième fichier, feuil2, cellule qui A1 peut contenir soit janvier soit février soit mars...jusqu'à décembre et en B1 un total. (ici je n'écris que dans la cellule A1 et B1) Mon prb : je dois exporter le total de B1 dans le premier fichier et dans le mois correspondant. Comment "repérer" le mois ? Autrement dit : si fichier2/feuil2/a1=janvier alors écrire dans fichier1/feuil1/b1, si fichier2/feuil2/a1=février alors écrire dans fichier1/feuil1/b2, si fichier2/feuil2/a1=mars alors écrire dans fichier1/feuil1/b3... est-il possible de faire ça sans imbriquer 12 fonction In...End if ? merci a+