Ajout d'une macro incrémentation dans une autre macro

Bonjour,

Je souhaiterais créer une macro qui me permettrait de désactiver toutes les cases à cocher sélectionnées ET qui me permettrait d'incrémenter mon numéro de facture.

J'ai réussi à coder chaque partie séparément mais dès que je veux les combiner, l'incrémentation ne se fait pas.

Voici le code saisi pour les cases à cocher d'une part :

Sub Nouvellesaisiefacture()

'

' Nouvellesaisiefacture Macro

'

ActiveSheet.Shapes.Range(Array("Check Box 7")).Select

With Selection

.Value = xlOff

.LinkedCell = ""

.Display3DShading = True

End With

ActiveSheet.Shapes.Range(Array("Check Box 8")).Select

With Selection

.Value = xlOff

.LinkedCell = ""

.Display3DShading = False

End With

Range("J2").Select

End Sub

et le code pour l'incrémentation d'autre part :

Sub Incrementation()

'

' Incrémentation Macro

'

Dim Num As Integer

Range("J2").Select

Num = Range("J2").Value

Num = Num + 1

Range("E8").Value = Num

End Sub

Je précise que j'utilise une version d'EXCEL pour MAC.

Pouvez-vous m'aider ?

Cordialement,

Nady

19essai-compta.xlsm (124.35 Ko)

Bonjour,

Comme toujours, sans fichier, rarement de l'aide, surtout avec du VBA !!!!

Bonsoir,

Désolée pour l'oubli !

J'ai ajouté le fichier dans mon message d'origine.

Merci beaucoup.

Nady

bonjour

Je pense que vous vouliez dire

Je souhaiterais créer une macro qui me permettrait de décocher toutes les cases à cocher déjà coché

Tous simplement : décocher toutes les cases à cocher et a la suite incrémenter le numéro de facture.

essayer ca

Sub Nouvellesaisiefacture() 'L’Incrémentation et le  décochage 
Dim ChkBx
Dim num As Integer
Dim counter As Integer
Dim S_F As Worksheet, F_C As Worksheet

Set S_F = Worksheets("Saisie Factures")
Set F_C = Worksheets("Facture client")
For Each ChkBx In S_F.CheckBoxes
ChkBx.Value = False
Next

S_F.Range("J2") = S_F.Range("J2") + 1
counter = S_F.Range("J2")
F_C.Range("E8").Value = S_F.Range("I2").Value & Format(counter, "0000")

End Sub

Remarque : Range ("J2") sur la feuille de " Saisie Factures " doit être en format numérique personnalisé

Et pout le Range ("E8") sur la feuille de "Facture client" vous pouvez le remplacer par un autre proche comme Range ("B8")

Si votre question est résolut SVP changer le titre de : Ajout d'une macro incrémentation dans une autre macro a : macro pour incrémenter un chiffre et décocher une case à cocher

Bonsoir,

Merci beaucoup pour votre aide.

Voici le message qui apparaît :

Erreur d'exécution 1004

Impossible de définir la propriété value de la classe Checkbox

Je me suis permise d'indiquer en rouge la ligne qui bloque pour l'exécution de la macro.

Sub Nouvellesaisiefacture() 'L’Incrémentation et le décochage

Dim ChkBx

Dim num As Integer

Dim counter As Integer

Dim S_F As Worksheet, F_C As Worksheet

Set S_F = Worksheets("Saisie Factures")

Set F_C = Worksheets("Facture client")

For Each ChkBx In S_F.CheckBoxes

ChkBx.Value = False

Next

S_F.Range("J2") = S_F.Range("J2") + 1

counter = S_F.Range("J2")

F_C.Range("E8").Value = S_F.Range("I2").Value & Format(counter, "0000")

End Sub

11essai-compta.xlsm (115.08 Ko)

Salut

je pense que vous avez bien integre le code svp envoyer moi un extrait de ton fichier avec le code integre

Bonjour,

J'ai édité mon précédent message pour ajouter mon fichier.

Je vais essayer de prendre l'habitude de mettre le fichier à chaque fois....

Merci encore pour ton aide.

Nady.

Bonjour,

Pour désélectionner tes cases à cocher :

Sub Nouvellesaisiefacture()
    Dim i%
    With Worksheets("Saisie Factures")
        For i = 7 To 30
            .Shapes("Check Box " & i).ControlFormat.Value = xlOff
        Next i
    End With
End Sub

(Pas vu la suite encore)

Cordialement.


Pour incrémenter, suffit de +1 !

D'où :

Sub Nouvellesaisiefacture()
    Dim i%
    With Worksheets("Saisie Factures")
        For i = 7 To 30
            .Shapes("Check Box " & i).ControlFormat.Value = xlOff
        Next i
        .Range("J2") = Range("J2") + 1
    End With
End Sub

Je ne vois pas l'utilisation de E8 !? Donc...

NB-Pour un code VBA correct, supprimer tout Select qui ne fait que ralentir l'exécution, et indenter correctement le code...

Cordialement.

Bonsoir MFERAND,

J'ai saisi le que tu m'as code proposé et j'ai le même message d'erreur que précédemment.

Je mets le fichier EXCEL avec le code saisi en pièce jointe.

Merci pour ton aide en tout cas.

Nady.

20essai-compta.xlsm (112.17 Ko)

Bonsoir,

Fonctionne parfaitement ! Sans rien modifier et sans erreur !

Quelle erreur ?

Et je ne vois pas quelle incompatibilité il pourrait y avoir avec MAC.

BONJOUR

1- Quel version vous utilisez anglais ou français

2- les noms des Case à cocher sont en anglais ou français

français Case à cocher

anglais Check Box

Salut Amir,

Pour les contrôles de formulaire, les noms anglais ou français fonctionnent en principe aussi bien sur une version FR mais j'ai déjà pu noter que les noms anglais sont plus sûrs...

Salut MFerrand

Je te remercie, remarque reçus

Bonjour,

J'ai eu une fois une erreur pour laquelle je ne voyais pas d'explication et je n'ai pu la faire disparaître qu'en passant le nom du contrôle en anglais...

Et tu as peut-être remarqué que lorsque tu cliques droit sur un, dans la zone Nom, le nom apparaît d'abord en anglais avant de passer en français.

Dans les premières versions, Microsoft offrait la possibilité de coder en VBA en français mais il y avait parfois des commandes instables... Lorsque cette possibilité a été abandonnée, une traduction automatique de code écrit antérieurement en français vers l'anglais était offerte, mais plus d'une fois sur deux les macros ne fonctionnaient plus et il fallait revoir entièrement le code...

Mais là le problème me semblerait reposer plutôt sur des réactions différentes entre PC et MAC (?). Je n'ai cependant pas encore vu répertorier des problèmes sur MAC avec des contrôles de formulaires (alors qu'il y en a avec des ActiveX).

Mais peut-être que ton idée de départ de basculer les noms en français pourrait régler le problème sur MAC !? Cela peut être essayé !

Cordialement.

Bonjour !

Voici le message d'erreur qui apparaît :

Erreur d'exécution 1004

Impossible de définir la propriété value de la classe Checkbox

Cordialement,

Nady

Bizarre que cela fasse référence à la classe CheckBox ! (Il ne s'agit pas d'ActiveX).

Essaie de modifier la procédure ainsi :

Sub Nouvellesaisiefacture()
    Dim i%, ws As Worksheet
    Set ws = Worksheets("Saisie Factures")
    For i = 7 To 30
        ws.Shapes("Check Box " & i).ControlFormat.Value = xlOff
    Next i
    ws.Range("J2") = ws.Range("J2") + 1
End Sub

Difficile de déboguer une erreur quand elle ne se produit pas !


Autre solution à essayer (qui utilise les collections de ces objets qui ne sont plus documentées depuis VBA5) :

Sub Nouvellesaisiefacture()
    Dim i%
    With Worksheets("Saisie Factures")
        For i = 1 To .CheckBoxes.Count
            .CheckBoxes(i).Value = xlOff
        Next i
        .Range("J2") = .Range("J2") + 1
    End With
End Sub

Je précise que tout ce que je propose fonctionne chez moi sur ton fichier !

Pour le moment je n'ai pas d'autre idée...

Bonjour,

J'ai testé les deux propositions et j'ai toujours un message d'erreur qui apparait (le même que précédemment).

Par acquis de conscience, j'ai testé le programme sur un poste Windows et .... Tout fonctionne parfaitement !

J'avoue que je ne sais pas pourquoi cela ne fonctionne pas sous Mac.

Je coche donc que le problème est résolu et je vais continuer à chercher pourquoi MAC ne prend pas en charge ces fonctionnalités.

Merci pour votre aide.

Nady

J'avoue que je ne sais pas pourquoi cela ne fonctionne pas sous Mac.

Moi non plus donc !

J'avais pensé aux possibilités de problèmes lié au MAC, mais je n'en ai pas encore vu répertoriés sur ce type de contrôles...

Si je vois quelque chose en circulant...

Et refais passer l'info si tu trouves, il est utile de savoir à quoi s'en tenir dans les incompatibilités...

Bonne soirée.

[quote="MFerrand"][

Et refais passer l'info si tu trouves, il est utile de savoir à quoi s'en tenir dans les incompatibilités...

[/quote]

Pas de soucis ... Il est important de partager ces connaissances si on veut avancer

Rechercher des sujets similaires à "ajout macro incrementation"