copier vers un autre fichier

Le
bobaskis
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 marsjusqu'à 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 InEnd if ?
merci
a+
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FdeCourt
Le #6438131
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.
boblebob
Le #6439281
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"
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
Le #6439951
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.
Jacques ALARDET
Le #6462731
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" 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+


Publicité
Poster une réponse
Anonyme