Mise en place d'un gestionnaire de Bon de Livraison et Bon de Commande Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 6'280
Appréciations reçues : 106
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2011

Message par Dan » 4 décembre 2017, 12:31

Bonjour Alex

je suis étonné que cela fonctionne pour la suppression des images car j'avais omis de te donner une ligne à mettre dans le code Nouvelle Page.
Voici le code que tu dois modifier :
Sub NOUVELLEPAGE()
' NOUVELLEPAGE Macro
' AJOUTE UNE PAGE IDENTIQUE EN BAS DE PAGE POUR CONTINUER LA SAISIE SUR UNE AUTRE PAGE
Dim lig As Integer
With Sheets("MACBC")
    .Unprotect
    lig = .Cells.Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 2
    .Rows("1:55").Copy .Range("A" & lig)
    lig = lig + 23
    .Range("C" & lig & ":C" & lig + 22).Clear
    .Range("I" & lig & ":I" & lig + 22).Clear
    .Pictures(.Pictures.Count).Name = "Image " & .Pictures.Count 'On nomme les images
    .PageSetup.PrintArea = "$A$1:$L$" & lig + 29
   .Range("K" & lig + 25).FormulaR1C1 = "=SUM(R[-25]C:R[-3]C,R[-53]C)"
    .Protect
End With
End Sub
Amicalement
1 membre du forum aime ce message.
@+ Dan ;)
D
DUAL ex
Membre habitué
Membre habitué
Messages : 85
Inscrit le : 4 août 2017
Version d'Excel : 2016

Message par DUAL ex » 4 décembre 2017, 20:12

Hello Dan,

Bah écoute, j'ai intégré le code EFFACEIMAGE, ça ne fonctionnait pas de suite, alors j'ai regardé le code. Après compréhension j'ai du renommer l'image (le logo) en "Image 1". puis le code a fonctionné de suite.

Je comprends ton étonnement car moi même je me suis posé la questions : quand le code génère une nouvelle page, il génère une nouvelle image qu'il nomme aussi "Image 1". Pourtant le code EFFACEIMAGE me supprime bien uniquement l'image ajoutée et uniquement celle ci !


Et encore une fois super pour ton dernier code suite à ma demande, il fonctionne à merveille, c'est juste génial.

Enfin, le projet se termine et tu y es pour beaucoup.
Je mets tout en place, forme et couleurs.

A très vite sur Excel-pratique ^^


Amicalement,
Alex.
D
DUAL ex
Membre habitué
Membre habitué
Messages : 85
Inscrit le : 4 août 2017
Version d'Excel : 2016

Message par DUAL ex » 15 décembre 2017, 19:00

Salut Dan,

Me voici de retour...

J'ai ajouté des images que j'utilise en tant que bouton :

Retour (image d'une flèche an arrière), enregistrement (image disquette), nouvelle saisie (image d'une poubelle), nouvelle page (image d'une page), aide (image d'un point d'interrogation).

Remarque : j'ai bien renommé les images de la façon suivante :
RETOUR
DISQUETTE
POUBELLE
PAGE
AIDE

Ces image sont sur la feuille active lors de l'appelle de la macro "EFFACEIMAGE" et j'ai donc essayé de modifier le code de la façon suivante :
Sub EFFACEIMAGE()
Dim img As Object
    For Each img In ActiveSheet.Pictures
        If img.Name <> "Image 1" Or "RETOUR" Or "DISQUETTE" Or "POUBELLE" Or "PAGE" Or "AIDE" Then img.Delete
    Next
End Sub
Mais le code ne fonctionne pas...
Arrives-tu à voir où j'ai pu faire une erreur dans ce code ? Car a chaque nouvelle saisie, tous mes boutons sont effacés !!!

Merci pour tes services.


Amicalement,
Alex.
D
DUAL ex
Membre habitué
Membre habitué
Messages : 85
Inscrit le : 4 août 2017
Version d'Excel : 2016

Message par DUAL ex » 15 décembre 2017, 21:46

j'ai aussi essayé :
Sub EFFACEIMAGE()
Dim img As Object
    For Each img In ActiveSheet.Pictures
        If img.Name <> "Image 1" Or img.Name <> "RETOUR" Or img.Name <> "DISQUETTE" Or img.Name <> "POUBELLE" Or img.Name <> "PAGE" Or img.Name <> "AIDE" Then img.Delete
    Next
End Sub
... Et ça ne marche pas non plus. ::( ::(
D
DUAL ex
Membre habitué
Membre habitué
Messages : 85
Inscrit le : 4 août 2017
Version d'Excel : 2016

Message par DUAL ex » 15 décembre 2017, 21:55

J'ai trouvé !!!!


Il suffit de changer les "Or" par "And"... et ça fonctionne.


A bientôt.
Bye.
D
DUAL ex
Membre habitué
Membre habitué
Messages : 85
Inscrit le : 4 août 2017
Version d'Excel : 2016

Message par DUAL ex » 16 décembre 2017, 13:14

Re,

Suite aux message précédent, j'ai continuer avec des images comme boutons.

Lorsque je click sur "nouvelle saisie" (Le bouton POUBELLE pour supprimer les données renseignées dans le formulaire) les images reste bien car j'ai bien modifié EFFACEIMAGE :
        If img.Name <> "Image 1" And img.Name <> "RETOUR" And img.Name <> "DISQUETTE" And img.Name <> "POUBELLE" And img.Name <> "PAGE" And img.Name <> "AIDE" Then img.Delete
Ça c'est OK.

En revanche, maintenant, quand je click sur ajout d'une nouvelle page cela m'ajoute aussi les boutons.
Saurais tu où je pourrais mettre une close comme quoi je ne veut pas qu'il recopie les boutons nommés RETOUR, DISQUETTE
, etc. ?
Voici le code.
Sub NOUVELLEPAGE()
' NOUVELLEPAGE Macro
' AJOUTE UNE PAGE IDENTIQUE EN BAS DE PAGE POUR CONTINUER LA SAISIE SUR UNE AUTRE PAGE
Dim lig As Integer
With Sheets("MACBC")
    .Unprotect
    lig = .Cells.Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 2
    .Rows("1:55").Copy .Range("A" & lig)
    lig = lig + 23
    .Range("C" & lig & ":C" & lig + 22).Clear
    .Range("I" & lig & ":I" & lig + 22).Clear
    .Pictures(.Pictures.Count).Name = "Image " & .Pictures.Count 'On nomme les images
    .PageSetup.PrintArea = "$A$1:$L$" & lig + 29
   .Range("K" & lig + 25).FormulaR1C1 = "=SUM(R[-25]C:R[-3]C,R[-53]C)"
    .Protect
End With
End Sub
Je pourrais laisser les boutons se faire "copier/coller" car normalement il seraient effacés avec "NOUVELLE SAISIE".
Mais le problème est que lors du "copie/Colle" des boutons (les images) ne sont pas renommées malgré le code au dessus...
  .Pictures(.Pictures.Count).Name = "Image " & .Pictures.Count 'On nomme les images
Les doublons portent le même nom que les originaux. De ce fait, "NOUVELLE SAISIE" ne les efface pas ! :cry:

Sais tu pourquoi ?

Merci Dan,
Au plaisir de te lire.

Alex.

PS : je te joins un screen shoot au cas ou le problème de renommer les image soit du au positionnement.
en-tete.png
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 6'280
Appréciations reçues : 106
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2011

Message par Dan » 18 décembre 2017, 08:32

Bonjour

Dans la sub Nouvelle_page, fais un essai en remplaçant cette ligne
.Rows("1:1").Copy .Range("A" & lig)
par
.Range("A1:L55").Copy .Range("A" & lig) 
Amicalement
@+ Dan ;)
D
DUAL ex
Membre habitué
Membre habitué
Messages : 85
Inscrit le : 4 août 2017
Version d'Excel : 2016

Message par DUAL ex » 18 décembre 2017, 21:19

Hello Dan,

Je viens de tester, ça fonctionne. On copie de la cellule A1 à L55, puis on colle.
Pb !!! sinon ce ne serait pas drôle, les cellules sont bien copiées mais la mise en forme à foutue le camps.
Toutes les lignes ont une hauteurs de 14,25. Du coup la feuille sort de la zone d'impression. (Ça ne le faisait pas avec le code précédent.)

Et sinon cette ligne :
 .Pictures(.Pictures.Count).Name = "Image " & .Pictures.Count 'On nomme les images
Je me demande sil elle n'est pas spécifique à une seule image (celle du logo, car elle est bien toujours renommée à la différence des autres). Auquel cas, crois-tu que je peux multiplier cette ligne de code par le nombre d'image ? Ou ça ne sert à rien...

Amicalement,
Alex
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 6'280
Appréciations reçues : 106
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2011

Message par Dan » 19 décembre 2017, 13:17

Re
Pb !!! sinon ce ne serait pas drôle, les cellules sont bien copiées mais la mise en forme à foutue le camps.
Toutes les lignes ont une hauteurs de 14,25. Du coup la feuille sort de la zone d'impression. (Ça ne le faisait pas avec le code précédent.)
Si cela faisait aussi avec le code précédent. Je viens de faire un test sur le fichier V3.1. Attention que le code ne gère pas le saut de page. Sinon la hauteur des lignes bonne chez moi

Pour les images, la ligne n'est pas spécifique. Le but est de nommer le logo avec un incrément. Les boutons ne sont pas considérés comme image. Maintenant si tu as ajouté des boutons Image, cela se complique pour le code
@+ Dan ;)
D
DUAL ex
Membre habitué
Membre habitué
Messages : 85
Inscrit le : 4 août 2017
Version d'Excel : 2016

Message par DUAL ex » 19 décembre 2017, 16:23

Bonjour Dan,

Alors je te mets en PJ un extrait du classeur pour que tu visualise comment ça se passe et le problème que j'ai :

Après ouverture, appuies sur nouvelle page, et regarde la mise en page.
Puis supprime, cette nouvelle page, la avec la corbeille.
Les images/boutons restes.

Si je comprends bien, une image utilisées en tant que bouton n'est plus une image img. pour excel ???



Je t'écris un autre message pour mettre en PJ, le même fichier mais avec :
.Range("A1:L55").Copy .Range("A" & lig) 
et regarde ce que devient la mise en page lors d'un ajout de page.
V4.1 Dan.xlsm
(447.42 Kio) Téléchargé 5 fois
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message