XL 2010 (Génération d'invitations) Erreur 424 ???

ManuXZ

XLDnaute Junior
Bonjour Patrick !! et les autres ;-))

(Excel 2010)
Désolé de revenir sur un sujet car je suis un peu débordé en ce moment...;-))
Petit rappel:
On saisit un nbre de places sur la feuille "SAISIE" et on clique sur le bouton et cela génère les invitations sur la feuille "EDITION"

Tu m'avais sacrément aidé la dernière fois !!! au sujet de la génération de mes invitations , (dupliquer n fois des invitations avec tjrs 3 invitations par page) à partir d'un modèle) car:
1/ j'avais un pb lors de la recopie de mon logo
2/ et j'avais des décalages lors de l'édition de mes invitations ,

Bref, effectivement autant laissé tomber le modèle et générer directement les invitations sur la feuille EDITION (en conservant évidemment toujours la 1ère invitation)
De plus, tu m'avais optimisé mon code , plus qu'optimisé d'ailleurs.... !! ( reformulé complètement en fait ;-)) !!!

En fait j'ai 2 pbs:

1er pb:
et donc j'avais testé avec ton fichier (qui fonctionne mais de temps en temps, bizarrement, lorsque je commence a saisir à la suite
nbre :1 OK , nbre:2 OK, nbr 3 : erreur
il bloque sur la ligne plage1.Copy cel (méthode copy de la classe range a échoué )

2ème pb:
et , chose étonnante ???!!! , j'ai donc recopié ta macro dans mon classeur et lors de l'exécution de la macro :
il m'affiche ERREUR 424 genre objet non défini ??? (ou apparemment le pb viendrait de la feuille EDITION)?
ou un truc tout bête sûrement que je n'arrive pas à saisir :-(((

je t'ai joint ton fichier (TEST-EDITION)
et le mien EDITIQUE

Petite question annexe: comment colorier le bouton (+ ombre, bascule,...) sur la feuille SAISIE ??? :))) (je ne vois pas les propriétés ??) ou bien alors passer par un activeX ??
Merci bcp !
Manu
 

Pièces jointes

  • TEST-EDITION.xlsm
    30.4 KB · Affichages: 2
  • EDITIQUE.xlsm
    92.5 KB · Affichages: 1

patricktoulon

XLDnaute Barbatruc
re
bon
on prend les mêmes et on recommence
pour le premier fichier tu ne devrais plus avoir l'erreur de plage
VB:
Sub clearPage()
    With Feuil2
        derlig = .Cells(Rows.Count, "A").End(xlUp).Row
        If derlig <= 18 Then Exit Sub
        .Range("A19:A" & derlig).EntireRow.Delete
        For I = Feuil2.Shapes.Count To 2 Step -1: DoEvents: Feuil2.Shapes(I).Delete: Next
         Feuil2.Range("F4,A8:F8,C10:E10,C12,C13,A16:F16,A18").ClearContents
     End With
End Sub


Sub createcopy()
   Dim F As Worksheet, plage1 As Range, I&, cel As Range, cell As Range, A&
   clearPage
    Set F = Feuil2
    Set plage1 = F.[A1:G19]
    'ecriture des données
    With F
        .[A8] = Feuil1.[b4]
        .[c10] = Feuil1.[b7]
        .[c12] = Feuil1.[b10]
        .[c13] = Feuil1.[b13]
        .[A16] = Feuil1.[B19]
        .[A18] = Feuil1.[B22]
    End With
    nombre = Feuil1.[b25]

    For I = 1 To nombre - 1
        Set cel = F.Range("A" & (19 + 1) * I)
        plage1.Copy cel
        F.Shapes(I + 1).Top = cel.Top + 10
        F.Shapes(I + 1).Left = 15
      If I Mod 3 = 0 Then F.HPageBreaks.Add Before:=cel ' 1 invit par feuille A4 (mettre mod 2 pour imprimer deux invit par feuille)
     cel.Offset(1, 6) = I + 1
     Next
 
F.PrintPreview

End Sub
pour le 2d je regarde d'abords ce que tu a fait
 

patricktoulon

XLDnaute Barbatruc
re
et voilà pour le classeur editique
VB:
Sub clearPage()

    With Sheets("EDITION")
        derlig = .Cells(Rows.Count, "A").End(xlUp).Row
        If derlig <= 18 Then Exit Sub
        .Range("A19:A" & derlig).EntireRow.Delete
        For I = .Shapes.Count To 2 Step -1: DoEvents: EDITION.Shapes(I).Delete: Next
         .Range("F4,A8:F8,C10:E10,C12,C13,A16:F16,A18").ClearContents
     End With
End Sub


Sub createcopy()
   Dim F As Worksheet, plage1 As Range, I&, cel As Range, cell As Range, A&
   clearPage
    Set F = Sheets("EDITION")
    Set plage1 = F.[A1:G19]
    'ecriture des données
    With F
        .[A8] = Sheets("SAISIE").[b6]
        .[c10] = Sheets("SAISIE").[b9]
        .[c12] = Sheets("SAISIE").[b11]
        .[c13] = Sheets("SAISIE").[b13]
        .[c15] = Sheets("SAISIE").[b15]
        .[A16] = Sheets("SAISIE").[b18]
        .[A18] = Sheets("SAISIE").[b21]
     
    End With
    nombre = Sheets("SAISIE").[b24]

    For I = 1 To nombre - 1
        Set cel = F.Range("A" & (19 + 1) * I)
        plage1.Copy cel
        F.Shapes(I + 1).Top = cel.Top + 10
        F.Shapes(I + 1).Left = 15
      If I Mod 3 = 0 Then F.HPageBreaks.Add Before:=cel ' 1 invit par feuille A4 (mettre mod 2 pour imprimer deux invit par feuille)
     cel.Offset(1, 6) = I + 1
     Next
 
F.PrintPreview

End Sub
télécharger les deux fichiers toi devoir
1709383252903.jpeg
 

Pièces jointes

  • TEST-EDITION.xlsm
    32.3 KB · Affichages: 1
  • EDITIQUE.xlsm
    92.3 KB · Affichages: 1
Dernière édition:

ManuXZ

XLDnaute Junior
Merci bcp !!!
1/ En fait pour l'erreur 424, c'était juste qu'il manquait sur mon fichier le Sheet sur la ligne ??!!!:
With Sheets("EDITION") .. alors que étonnamment lorsque j'exécutais ton fichier il n'y avait pas le "sheet' et il ne bloquait pas dessus??? Etrange....

2/ par contre j'ai tjtrs la même erreur "Copy Range. a échoué"...
' j'ai saisi 10 invitations OK
juste après j'en ai saisi 3 et : l'erreur
en fait c'est tjrs dès que l'on fait une deuxième saisie ???
==> en fait pas tjrs je viens d'en faire deux de suite c'est passé et la 3ème ça s'est planté

===========================================================
Et lorsque je clique sur débogage, il m'affiche excel a cessé de fonctionner et se ferme ...???
============================================================
REm: très très JOLI BOUTON !!! (Un active X ???) ;-))
 

Pièces jointes

  • ERREUR-plage.png
    ERREUR-plage.png
    109 KB · Affichages: 7
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
non ce n'est pas un activX c'est une shapes
c'est normal quand c'est dans un bloc "With" on met pas sheets("xxx") on met juste le point

pour le reste je sais pas il semblerait que l'erreur soit du a une occupation du pc manque de mémoire peut être

chez moi pas d'erreur ça marche à tout les coups
 

ManuXZ

XLDnaute Junior
1./ Tu as fait le test en Excel 2010 ou autres versions assez anciennes ?
Très étrange ??? , pourtant j'ai un pc côté mémoire 8Go Ram, et comme je le disais ça le fait au bout de la 2 ou 3ème saisie ???

2;/ Par contre , je n'ai pas vu la différence sur la correction que tu as apportée au sujet de la plage par rapport à la version initiale , qu'as-tu modifié ?
 

patricktoulon

XLDnaute Barbatruc
re
la modif c'est dans la clear
VB:
Sub clearPage()
    With Feuil2
        derlig = .Cells(Rows.Count, "A").End(xlUp).Row
        If derlig <= 18 Then Exit Sub
        .Range("A19:A" & derlig).EntireRow.Delete
        For I = .Shapes.Count To 2 Step -1: DoEvents: .Shapes(I).Delete: Next
         .Range("F4,A8:F8,C10:E10,C12,C13,A16:F16,A18").ClearContents
     End With
End Sub
on est dans un with feuil2
donc c'est
.range ..
.cells....
.shapes....

et dans editique j'ai mis sheets("edition") car on est pas d"ans un bloc with
si ca bug pas tout le temps ca viens forcement de ton uc ou mémoire
 

ManuXZ

XLDnaute Junior
Bonjour ,

A/ Concernant la fonction clearPage()
J'ai essayé de comprendre l'intérêt de la ligne:
.Range("F4,A8:F8,C10:E10,C12,C13,A16:F16,A18").ClearContents

Dans le principe, j'ai bien compris que cela "nettoyait" certaine plages de cellules mais pourquoi F4,A8 puis F8,C10,....
car déjà, juste avant
1/ on supprime toutes les lignes à partir de A19 avec:
.Range("A19:A" & derlig).EntireRow.Delete:
2/ puis toutes les shapes (logo) : For I = .Shapes.Count To 2 Step -1: DoEvents: .Shapes(I).Delete: Next

ET chose étrange, j'ai désactivé cette ligne (mise en comment) et cela fonctionne aussi bien...???

B/ Effectivement, c'est curieux mon pb de message "méthode copy range a échoué" car lorsque j'ai cette erreur , je suis obligé à chaque de le fermer (ou bien il se ferme automatiquement) et je le réouvre et cela fonctionne...

C/ Et j'ai remarqué lorsque je saisi par ex 4 ou 6 invitations il m'insère une feuille blanche, j'ai:
- 1 feuille avec 3 invits
- puis 1 feuille blanche
- puis 1 feuille avec le reste
As-tu ce genre de cas ?
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour
oui pour le clear on peut réduire a celle de la première
pour le delete des shapes ,non il ne faut pas la bloquer
pour la feuille blanche oui je l'ai remarqué je vais regarder ca
en fait ca doit dépendre comment l'ordre des pages est considéré
 

patricktoulon

XLDnaute Barbatruc
re oui si tu veux mais moi j'aime bien faire le travail de A à Z
donc le clear je le laisse
donc j'ai revu le truc
en fait tout c'est petits décalages sont dus a plusieurs choses
j'ai revu un peu tout dans les paramètres d'impression et de mises en page
je saute une ligne en moins
je recadre les images au bon endroit après dans une boucle supplémentaire
bien entendu on a plus de page blanches entre deux
voila pour le test-edition
 

Pièces jointes

  • TEST-EDITION.xlsm
    27.8 KB · Affichages: 1

patricktoulon

XLDnaute Barbatruc
re
et voila pour le model editique
et sur ce coup j'ai tout changer les codes des userform
par pitié apprenez a travailler avec des tableaux structurés
les codes sont bien plus simples par la suite
voila maintenant tes deux fichiers sont cleans
 

Pièces jointes

  • EDITIQUE.xlsm
    90.2 KB · Affichages: 2

ManuXZ

XLDnaute Junior
RE,

En fait j'ai tjrs le même pb de pages...??? étonnant j'ai saisi 4 invitations (et maintenant 6 feuilles en tout ???)
1 feuille avec 3
1 feulle blanche
1 feuille avec 1
et 3 autres feuilles blanches

et de +, je ne retrouve plus ma fonction sur la feuille "SAISIE" mon code qui comprenait
- le remplissage de ma liste box depuis le tableau + le tri que j'avais rajouté.

Rem: En fait, j'avais rajouté cette fonction de tri car je n'avais pas rajouté l'entête dans le tableau car ce sont pour des personnes qui ne sont pas très à l'aise avec l'outil et j'ai pensé dans le cas où elle font la maj du tableau (insert, supp d'un élément) , elles n'auraient pas besoin de penser ensuite à le trier car cette fonction serait intégrée dès l'affichage de la listbox mais c'est peut-être mieux ainsi...??
Par contre curiosité technique, comment tu as fait le remplissage de la listbox ?? j'ai cherché mais où??

Merci pour tes conseils mais concernant le code, j'essaierai de voir cette semaine ce qu'il cloche??
 

Pièces jointes

  • Sautde page.png
    Sautde page.png
    95.9 KB · Affichages: 4

Discussions similaires

Réponses
14
Affichages
825

Statistiques des forums

Discussions
312 209
Messages
2 086 263
Membres
103 167
dernier inscrit
miriame