Macro Excel 2007
Résolu/Fermé
evevdll
evevdll
- Messages postés
- 81
- Date d'inscription
- vendredi 9 novembre 2007
- Statut
- Membre
- Dernière intervention
- 13 décembre 2009
evevdll
- Messages postés
- 81
- Date d'inscription
- vendredi 9 novembre 2007
- Statut
- Membre
- Dernière intervention
- 13 décembre 2009
4 réponses
eriiic
19 janv. 2009 à 22:37
- Messages postés
- 24408
- Date d'inscription
- mardi 11 septembre 2007
- Statut
- Contributeur
- Dernière intervention
- 23 juin 2022
19 janv. 2009 à 22:37
Bonsoir,
Un exemple de ce que tu pourrais faire avec ton n° de facture dans ("Feuil1").[A1] :
eric
Un exemple de ce que tu pourrais faire avec ton n° de facture dans ("Feuil1").[A1] :
Sub test() ok = True For Each w In Worksheets 'contrôle si n° non utilisé If w.Name = Worksheets("Feuil1").[A1] Then ok = False Exit For End If Next w If Not ok Then MsgBox ("N° facture déjà utilisé") ElseIf Worksheets("Facture").[C12].Value = "" Then 'contrôle de C12 MsgBox ("C12 vide") Else 'Call ton_sub End If End Sub
eric
m@rina
19 janv. 2009 à 22:46
- Messages postés
- 17465
- Date d'inscription
- mardi 12 juin 2007
- Statut
- Contributeur
- Dernière intervention
- 21 juin 2022
19 janv. 2009 à 22:46
Bonsoir
Pourquoi ne pas faire une incrémentation automatique de numéro ?... Il n'y aurait pas à gérer ce type d'erreur...
Une idée en passant ! ;)
m@rina
Pourquoi ne pas faire une incrémentation automatique de numéro ?... Il n'y aurait pas à gérer ce type d'erreur...
Une idée en passant ! ;)
m@rina
evevdll
19 janv. 2009 à 22:54
- Messages postés
- 81
- Date d'inscription
- vendredi 9 novembre 2007
- Statut
- Membre
- Dernière intervention
- 13 décembre 2009
19 janv. 2009 à 22:54
Bonsoir Marina,
Merci de ta réponse. j'y avais pensé mais s'il fallait modifier une facture validée, j'ai peur qu'on ne puisse pas revenir sur le numéro manuellement. De plus je ne sais pas comment procéder.
Si tu le veux, tu peux noter la procédure car elle pourrait m'être utilse pour plus tard.
je garde les explications que l'on me donne pour éviter de demander trop souvent car j'essaie de m'entrainer seule quand c'est possible.
Bonne soirée,
Eve
Merci de ta réponse. j'y avais pensé mais s'il fallait modifier une facture validée, j'ai peur qu'on ne puisse pas revenir sur le numéro manuellement. De plus je ne sais pas comment procéder.
Si tu le veux, tu peux noter la procédure car elle pourrait m'être utilse pour plus tard.
je garde les explications que l'on me donne pour éviter de demander trop souvent car j'essaie de m'entrainer seule quand c'est possible.
Bonne soirée,
Eve
m@rina
19 janv. 2009 à 23:20
- Messages postés
- 17465
- Date d'inscription
- mardi 12 juin 2007
- Statut
- Contributeur
- Dernière intervention
- 21 juin 2022
- Messages postés
- 81
- Date d'inscription
- vendredi 9 novembre 2007
- Statut
- Membre
- Dernière intervention
- 13 décembre 2009
19 janv. 2009 à 23:20
Bonsoir Eve,
Pour cela, tu aurais créé une feuille cachée qui contiendrait simplement le numéro à incrémenter.
Pour un premier usage, ru mets le numéro à la main, 1 par exemple.
La macro irait chercher ce numéro et le copierait dans la cellule de la facture qui doit contenir le numéro :
Rien ne t'empêche d'ajouter quelque chose au numéro, une date, une référence...
puis une fois que l'onglet est créé, la macro incrémenterait le numéro dans la feuille cachée. Ce numéro sera prêt pour la facture suivante.
Dans ce cas, même si tu veux modifier un numéro d'une facture quelconque, ça ne gêne absolument rien.
m@rina
Pour cela, tu aurais créé une feuille cachée qui contiendrait simplement le numéro à incrémenter.
Pour un premier usage, ru mets le numéro à la main, 1 par exemple.
Numero_Fact = [feuille_num!A1]
La macro irait chercher ce numéro et le copierait dans la cellule de la facture qui doit contenir le numéro :
[facture!A5].Value = Numero_Fact
Rien ne t'empêche d'ajouter quelque chose au numéro, une date, une référence...
puis une fois que l'onglet est créé, la macro incrémenterait le numéro dans la feuille cachée. Ce numéro sera prêt pour la facture suivante.
[feuille_num!A1] = [feuille_num!A1]+ 1
Dans ce cas, même si tu veux modifier un numéro d'une facture quelconque, ça ne gêne absolument rien.
m@rina
evevdll
20 janv. 2009 à 00:28
- Messages postés
- 81
- Date d'inscription
- vendredi 9 novembre 2007
- Statut
- Membre
- Dernière intervention
- 13 décembre 2009
- Messages postés
- 17465
- Date d'inscription
- mardi 12 juin 2007
- Statut
- Contributeur
- Dernière intervention
- 21 juin 2022
20 janv. 2009 à 00:28
Merci,
Pas mal mais mes numéros seront sous la forme :
E090101 : E pour initiale, 09 pour l'année, 01 pour le mois et 01 pour le numéro à incrémenter
ou alors peut-être :
E09001 : E pour initiale, 09 pour l'année, 001 pour le numéro à incrémenter
J'ai essayé et ça marche mais pas pour ma numérotation personnelle.
Je garderai quand même tes explications.
A bientôt,
Evelyne
Pas mal mais mes numéros seront sous la forme :
E090101 : E pour initiale, 09 pour l'année, 01 pour le mois et 01 pour le numéro à incrémenter
ou alors peut-être :
E09001 : E pour initiale, 09 pour l'année, 001 pour le numéro à incrémenter
J'ai essayé et ça marche mais pas pour ma numérotation personnelle.
Je garderai quand même tes explications.
A bientôt,
Evelyne
m@rina
20 janv. 2009 à 00:44
- Messages postés
- 17465
- Date d'inscription
- mardi 12 juin 2007
- Statut
- Contributeur
- Dernière intervention
- 21 juin 2022
- Messages postés
- 81
- Date d'inscription
- vendredi 9 novembre 2007
- Statut
- Membre
- Dernière intervention
- 13 décembre 2009
20 janv. 2009 à 00:44
Re..
Ah ben ça, c'est pas un problème :
m@rina
Ah ben ça, c'est pas un problème :
[facture!A5].Value = "E" & Format(Now, "yymm") & Format(Numfact, "000")
m@rina
evevdll
19 janv. 2009 à 22:50
- Messages postés
- 81
- Date d'inscription
- vendredi 9 novembre 2007
- Statut
- Membre
- Dernière intervention
- 13 décembre 2009
19 janv. 2009 à 22:50
Rebonsoir,
ça marche mais après avoir cliqué sur ok dans la boite de dialogue, il continue quand même la macro avec le bogue.
Est-il possible d'avoir une boite de dialogue qui propose d'annuler la procédure pour pouvoir revenir sur les valeurs à modifier et redemander la macro ensuite ?
Si c'est le cas, peux-tu m'indiquer la marche à suivre ?
Merci d'avance,
Eve
ça marche mais après avoir cliqué sur ok dans la boite de dialogue, il continue quand même la macro avec le bogue.
Est-il possible d'avoir une boite de dialogue qui propose d'annuler la procédure pour pouvoir revenir sur les valeurs à modifier et redemander la macro ensuite ?
Si c'est le cas, peux-tu m'indiquer la marche à suivre ?
Merci d'avance,
Eve
eriiic
19 janv. 2009 à 23:37
- Messages postés
- 24408
- Date d'inscription
- mardi 11 septembre 2007
- Statut
- Contributeur
- Dernière intervention
- 23 juin 2022
19 janv. 2009 à 23:37
Re,
si tu as copier le code tel que je te l'ai mis il s'arrete. Ta macro doit se lancer dans la partie
Else
'Call ton_sub
End If
Il faut enlever la ' pour l'appeler avec call.
Tu dois donc avoir 2 sub :
sub
ma macro
end sub
et
sub
ta macro
end sub
eric
si tu as copier le code tel que je te l'ai mis il s'arrete. Ta macro doit se lancer dans la partie
Else
'Call ton_sub
End If
Il faut enlever la ' pour l'appeler avec call.
Tu dois donc avoir 2 sub :
sub
ma macro
end sub
et
sub
ta macro
end sub
eric
evevdll
20 janv. 2009 à 00:24
- Messages postés
- 81
- Date d'inscription
- vendredi 9 novembre 2007
- Statut
- Membre
- Dernière intervention
- 13 décembre 2009
- Messages postés
- 24408
- Date d'inscription
- mardi 11 septembre 2007
- Statut
- Contributeur
- Dernière intervention
- 23 juin 2022
20 janv. 2009 à 00:24
Bonsoir Eric,
ok ça marche avec bien du mal (pourtant logique après avoir compris).
J'ai eu des difficultés car ma macro est très longue et je ne savais pas où placer et convertir pour moi ce que tu m'as donné. J'inscris au fur et à mesure les explications pour des utilisations ultérieures.
Ce que j'ai fait doit être pour toi très facile mais pour moi un langage que je dois décoder.
A bientôt j'espère !
Encore merci
Evelyne
ok ça marche avec bien du mal (pourtant logique après avoir compris).
J'ai eu des difficultés car ma macro est très longue et je ne savais pas où placer et convertir pour moi ce que tu m'as donné. J'inscris au fur et à mesure les explications pour des utilisations ultérieures.
Ce que j'ai fait doit être pour toi très facile mais pour moi un langage que je dois décoder.
A bientôt j'espère !
Encore merci
Evelyne
evevdll
25 janv. 2009 à 13:33
- Messages postés
- 81
- Date d'inscription
- vendredi 9 novembre 2007
- Statut
- Membre
- Dernière intervention
- 13 décembre 2009
25 janv. 2009 à 13:33
Bonjour à Marina et Eric,
Je vous remercie de m'avoir aidée avec les macros. Vous avez répondu à mes questions et j'en ai tellement d'autres...
Je n'ai pas encore fini mon classeur et les macros sont pour moi un langage étranger. J'ai encore beaucoup à faire (je sais que pour vous ce serait rapide mais sans connaissance, c'est très difficile). Je vais essayer de me débrouiller un peu seule avant de vous solliciter de nouveau.
Encore merci
Evelyne
Je vous remercie de m'avoir aidée avec les macros. Vous avez répondu à mes questions et j'en ai tellement d'autres...
Je n'ai pas encore fini mon classeur et les macros sont pour moi un langage étranger. J'ai encore beaucoup à faire (je sais que pour vous ce serait rapide mais sans connaissance, c'est très difficile). Je vais essayer de me débrouiller un peu seule avant de vous solliciter de nouveau.
Encore merci
Evelyne
19 janv. 2009 à 22:41
Je vais tester tout de suite en espérant placer le code à la bonne place.
Je te confirmerai si j'ai réussi
Bonsoir,
Eve