macro sous excel 2007

macro sous excel 2007 - Logiciels - Windows & Software

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!!
Reply

Marsh Posté le 09-01-2012 à 11:41:38   

Reply

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.


Message édité par SuppotDeSaTante le 09-01-2012 à 11:47:57

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 09-01-2012 à 15:54:20    

pinaise tu me parle chinois la  :D  
 
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


---------------
rien!!
Reply

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 [:cyborg21]
 
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 ?


---------------
Soyez malin, louez entre voisins !
Reply

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


---------------
rien!!
Reply

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 :
  1. Sub NUMEROTATION()
  2. '
  3. ' NUMEROTATION Macro
  4. '
  5. ' Touche de raccourci du clavier: Ctrl+n
  6. '
  7. num = Range("D25" ).Value
  8. num = num + 1
  9. Range("D25" ).Value = num
  10. End Sub


 
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


Message édité par SuppotDeSaTante le 09-01-2012 à 16:48:07

---------------
Soyez malin, louez entre voisins !
Reply

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)


---------------
rien!!
Reply

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 ?
https://images-na.ssl-images-amazon.com/images/G/02/rainier/help/LL_macros_disabledFR5.jpg


Message édité par SuppotDeSaTante le 09-01-2012 à 16:51:48

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 09-01-2012 à 16:53:15    

Sinon envoi le fichier, je le teste. (il y a mon mail dans mon profil)


---------------
Soyez malin, louez entre voisins !
Reply

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


---------------
rien!!
Reply

Marsh Posté le 09-01-2012 à 17:02:55   

Reply

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


---------------
rien!!
Reply

Marsh Posté le 09-01-2012 à 18:19:14    

C'etait quoi alors ?


---------------
Soyez malin, louez entre voisins !
Reply

Marsh 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


---------------
rien!!
Reply

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?


---------------
rien!!
Reply

Marsh Posté le 09-01-2012 à 22:07:27    

Si, en testant s'il existe.
Regarde du coté FileSystemObject et notamment FileExist


---------------
Soyez malin, louez entre voisins !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed