Aide sur macro

riegel

XLDnaute Nouveau
Bonjour le Forum,

J'utilise une macro dans laquelle je renomme le nouveau fichier généré de la sorte :

nouveau_nom = ActiveWorkbook.Path & "\" & Left(Range("I" & ligne), 2) & Range("D" & ligne) & "_Fact-" & Range("Z" & ligne) & ".xls"

I est une colonne contenant des codes postaux.Le format de la cellule est 00000.
J'obtiens donc un nouveau fichier nommé 59tartempionFact_k5120 ; 59 étant le code département.
Mon soucis se pose pour les 9 premiers départements. Si le code postal est 02100, j'obtiens 21tartempionFact-k5121 au lieu de 02tartempionFact_k5121.
Comment puis-je faire pour renommer mon fichier correctement?

D'avance, je vous remercie.

Riegel.
 

riegel

XLDnaute Nouveau
Re : Aide sur macro

Bonjour le Forum,

Plutôt que d'ouvrir une nouvelle discussion, je poursuis celle que j'ai créée hier sur la même macro. Je remercie Job 75 pour sa réponse qui correspond exactement à ce que je souhaitais.

J'ai deux problèmes à résoudre. Commençons par le premier.
Ma problématique aujourd'hui est que je copie une cellule de la colonne Z d'un classeur A pour la coller dans un nouveau classeur généré en B24 de la façon suivante :
ash.Range("Z" & ligne).Copy Range("B24")

Le problème est que la colonne Z contient une formule : =SI(Y391>0;"KBS"&(DROITE(Z390;4)+1);"-").

Or, la macro copie la formule et j'obtiens sur le classeur généré "-" au lieu d'obtenir la valeur de la cellule de la colonne Z par exemple KBS5121.

Comment puis-je faire dans mon code pour obtenir la copie de la valeur de la cellule (KBS5121) et non la copie de la formule ?

D'avance je vous remercie de votre aide.

Riegel
 

job75

XLDnaute Barbatruc
Re : Aide sur macro

Bonjour riegel,

Si la seule chose à copier est la valeur de la cellule (et pas son format), écrivez simplement :

Code:
Range("B24") = ash.Range("Z" & ligne)

Edit : la propriété par défaut de Range est Value

A+
 
Dernière édition:

riegel

XLDnaute Nouveau
Re : Aide sur macro

Bonjour le Forum,

J'utilise la macro suivante :

Sub Affichertarifs()
AlternerCellulesPlages Range("AM95:AM482")
AlternerCellulesPlages Range("AQ96:AQ482")
AlternerCellulesPlages Range("AX96:AX482")
AlternerCellulesPlages Range("BD96:BD482")
Range("BG554").Font.ColorIndex = 2
Range("AY539").Font.ColorIndex = 2
[BK543] = "A"
End Sub

Sub AlternerCellulesPlages(Plage As Range)
Dim i As Long
For i = 1 To Plage.Cells.Count Step 2
Plage.Cells(i).Font.ColorIndex = 0
Next i
End Sub


J'ai juste un souci dans l'exécution de celle-ci. Elle est très longue à s'exécuter (plus d'une minute). Est-il possible, toujours pour les mêmes plages, d'avoir le même fonctionnement mais uniquement en fonction des lignes remplies.
Autrement dit, car je ne suis pas sûr d'être clair (!), je souhaite que les cellules concernées (AM95, AQ96,AX96 et BD 96)se mettent en police de caractère noir que si A95 est rempli par exemple et ainsi de suite si je remplis A97, A99, ...

D'avance je vous remercie pour votre aide.

Riegel
 

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 627
Membres
103 608
dernier inscrit
rawane