macro sous excel 2007 - Logiciels - Windows & Software
Marsh Posté le 09-01-2012 à 11:45:37
Ta variable num renvoi un range, ici une plage de cellule.
Tu ne peux pas ajouter 1 à une plage de cellule comme ca.
Il faut boucler sur ta plage, recuperer la valeur de chaque cellule et ajouter 1.
Edit : explique ce que tu souhaites faire, concrètement.
Marsh Posté le 09-01-2012 à 15:54:20
pinaise tu me parle chinois la
J'ai besoin de numero de facture unique.
je veux qu'a chaque impression, le numéro soit incrémenté de 1 dans la cellule "C25".
Par la suite, je voudrais avoir un bouton sur ma feuille excel qui :
1 - imprime
2 - enregistre un fichier excel (ou pdf) avec le numéro unique.
3 - incrémente le numéro de 1
voila c un peu complexe mais quelqu'un doit savoir le faire.
merci de ton aide
Marsh Posté le 09-01-2012 à 16:05:14
Non seulement c'est du chinois, mais en plus j'ai dit n'importe quoi (ou presque)...
Mea culpa...
Donc en fait c'est logique que ca ne marche pas, mais pas pour les raisons que j'ai dites plus haut.
La tu veux affecter à ta variable "num" la valeur de deux cellules. Ca c'est impossible. Ou alors il faut passer par des tableaux, mais si ma premiere phrase t'a fait peur, on va laisser tomber
Ayant eu une mauvais experience recemment en faisant le boulot de quelqu'un d'autre, je vais plutot te demander où tu en es dans ta démarche.
Tu parles d'impression, d'enregistrement sous un autre nom (ou pdf) et incrémentation de numéro.
Sur ces 3 points quel est ton avancement ?
Marsh Posté le 09-01-2012 à 16:20:03
pour l'instant j'eesaye de faire marcher l'incrémentation du numéro par un bouton.
et ca marche pas
Sub NUMEROTATION()
'
' NUMEROTATION Macro
'
' Touche de raccourci du clavier: Ctrl+n
'
num = Range(D25).Value
num = num + 1
Range(D25).Value = num
End Sub
j'ai modifié mais ca marche tj pas
j'ai une erreur 1004
Marsh Posté le 09-01-2012 à 16:45:33
Quand tu utilises une reference Excel dans un Range, c'est une chaine.
Et une chaine en VBA, c'est entre guillemets.
Essaie comme ca, ca ira mieux
Code :
|
Edit : d'ailleurs, si tu selectionnes "Range" et que tu fais F1 (pour l'aide) tu as bien comme exemple :
Worksheets("Sheet1" ).Range("A1").Value = 3.14159
Marsh Posté le 09-01-2012 à 16:48:39
j'ai deja essayé ca marche pas
je comprends pas, quand je regarde sur les forums c'est comme ca et ca marche (apparement)
Marsh Posté le 09-01-2012 à 16:51:11
Bah écoute chez moi ca marche...
Aucun souci.
Ton fichier est sous quel format ? xlsm ?
T'aurais pas l'avertissement de sécurité en haut à gauche comme sur l'image ?
Marsh Posté le 09-01-2012 à 16:53:15
Sinon envoi le fichier, je le teste. (il y a mon mail dans mon profil)
Marsh Posté le 09-01-2012 à 17:02:55
le format est bien xlsm et j'autorise les macros
tu pe me faire une copie d'écran de ton macro que je compare stp
je suis sous xp c pas ça qui coince?
merci de tom aide
Marsh Posté le 09-01-2012 à 17:47:41
c bon ca marche
enregistrement pdf, impression et auto incrementation
j'ai carrement refait une page
je c pas pk ca merder
merci
Marsh Posté le 09-01-2012 à 18:19:14
ReplyMarsh Posté le 09-01-2012 à 18:58:28
bah je sais pas
j'ai refais une feuille complete
comme j'ai fait une MAJ d'office SP2 vers le SP3 y a du avoir un bug
merci pour ton aide
Marsh Posté le 09-01-2012 à 19:00:56
voila le macro :
Sub enregistrement()
'
' enregistrement Macro
'
' Touche de raccourci du clavier: Ctrl+i
'
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\factures\facture" & Range("D41" ) & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
ActiveWindow.SelectedSheets.PrintOut Copies:=1
num = Range("D41" ).Value
num = num + 1
Range("D41" ).Value = num
End Sub
par contre si le fichier existe deja il me l'écrase, y a pas moyen d'ouvrir une boite de dialogue pour prévenir?
Marsh Posté le 09-01-2012 à 22:07:27
Si, en testant s'il existe.
Regarde du coté FileSystemObject et notamment FileExist
Marsh Posté le 09-01-2012 à 11:41:38
slt tlm,
je suis en train de faire un macro sous excel mais il me renvoit une erreur. Je n'arrive pas à comprendre mon erreur.
Sub NUMEROTATION()
'
' NUMEROTATION Macro
'
' Touche de raccourci du clavier: Ctrl+n
'
num = Range("C25:D25" ).Value
num = num + 1
Range("C25:D25" ).Value = num
End Sub
c la ligne rouge qui me pose probléme.
si quelqu'un peut m'aider
merci
Message édité par dede021385 le 09-01-2012 à 11:43:07
---------------
rien!!