[Résolu] Aide à la finalisation de mon projet

Lone-wolf

XLDnaute Barbatruc
Bonsoir le Forum,

toutes mes excuses concernant l'intitulé du sujet.
Comme il y a pas mal de chose à modifier, je ne savait pas quel titre donner.

Je dois modifier un fichier pour l'entreprise dans laquelle je travaille. Le problème c'est que celle-ci, travaille avec MAC, et moi je suis sur Windows.

Voici un exemple de macro, faite avec l'enregistreur, de l'ancien fichier.

Code:
Sub bloc_alimentation()
'
' bloc_alimentation Macro
'
    Sheets("POIDS_INTRO").Select
    Range("E15").Select
    ActiveSheet.Unprotect
    
    Sheets("Feuil1").Select
    ActiveWindow.SmallScroll Down:=-3
    Range("B32").Select
    Selection.Copy
    Sheets("POIDS_INTRO").Select
    Range("E15").Select
    

    
    ActiveSheet.Paste
    Application.CutCopyMode = False
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .ShrinkToFit = False
        .MergeCells = False
    End With
    Selection.Font.Bold = True
    With Selection.Font
        .Name = "Verdana"
        .Size = 22
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    Sheets("Feuil1").Select
    Range("A32").Select
    Selection.Copy
    Sheets("POIDS_INTRO").Select
    Range("E23").Select
    ActiveSheet.Paste
    Selection.Font.Bold = True
    With Selection.Font
        .Name = "Verdana"
        .Size = 20
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    Range("E19").Select
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub


Fichier joint: CLASSEUR

Maintenant Dans le nouveau fichier j'ai 4 feuilles, (Groupe A-B au Groupe L-V) où se trouves les boutons (Shapes en l'ocurrence). Parmi ceux-ci se trouve les boutons " Fer - Bois et Plastique" qui ont leurs propres feuilles d'inscription et de réception des données.

Pour Fer, feuilles: " Intro fer " et " Poids fer ". Pour Plastique et Bois, feuilles: " Intro plast. et bois " et " Poids plast. et bois ". Plus la feuille " Feuille à imprimer 1 ", qui reçoit les données des 3 Matériaux.

Pour les autres boutons, feuilles: Iintro Autres-matériaux, Poids Autres matériaux et feuille " Feuille à imprimer 2 ".

Dans un premier temps, tous les boutons (36), doivent aller rechercher leur propre nom de matériaux, ainsi que le nombre de cadres leur appartenant dans la feuille Base de données et afficher le résultat dans les feuilles Intro xxxxx.

Dans leurs macros respectives, il faut modifier ceci:

Macros se trouvant dans les feuilles "Intro xxxxx"
np = Sheets("Base de données").Range("B31")

With Sheets("Poids plast. et bois")
lig = .[A65536].End(xlUp).Row + 1 'calcul de ligne
If lig = 2 Then < a modifier si besoin
Faire une recherche ici:
num = np - correspond au numéro de palette
cdr = nombre de cadres. A rajouter.
Else
num = .Cells(lig - 1, 2) + 1
End If

En ce qui concerne Plastique et bois, dans la feuille Intro Plast. et bois, chaque matériaux à son numéro de palette, qui doit s'incrémenter à chaque nouvelle entrées.

Exemple: dans la même feuille, pour Plastique n°560 561 562 563 etc. - Bois 760 761 762 763 etc.

Si possible adapter le code pour Excel toutes versions pour MAC et Windows.

Pour l'instant, je m'arrête là. Il y aura encore d'autres choses à ajouter et modifier.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Aide à la finalisation de mon projet

Bonsoir



Le problème c'est que celle-ci, travaille avec MAC, et moi je suis sur OS.

Tu es sur un os ;)

Mais le MAC aussi c'est un OS, non ?

Tu veux dire que tu es sous Windows ;) qui lui aussi est un OS.

PS: Tu as regardé sur le forum s'il y avait des discussions relatives à la rédaction de code VBA compatibles MAC/WINDOWS ?

Tu peux aussi voir ce qui se dit sur des forums dédiés au Mac
Un exemple :
Bureautique, utilitaires, éducation - Forum Mac
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Aide à la finalisation de mon projet

Bonsoir Staple,

désolé pour le quack. Je vais corriger celà.


PS: non, je n'ai pas regarder. En plus, trouver un code qui ressemble au mien, c'est comme chercher une aiguille dans une botte de foin. (En plus ça fait la rime ;) ).


A+ :cool:
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Aide à la finalisation de mon projet

Bonjour Loup-Solitaire


Tu peux déjà supprimer tous les Select, non ?
Je pense que tu sais comment faire ;)

PS: Essaies de contacter en M-P, les membres du forum qui sont adeptes de la firme à la Pomme ;) car en ce qui me concerne, je ne peux tester ton code que sur un PC.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Aide à la finalisation de mon projet

Bonsoir


Remarques:
Groupe_Boutons_CD - -> module vide !
Groupe_Boutons_EL - -> module vide !
Groupe_Boutons_MV - -> module vide !

Avant de finaliser, si j'étais toi, j'opterai pour l'emploi de modules de classes (cf les différents exemples présents sur le forum à ce sujet)

Sinon, je pencherai plus pour alléger ton classeur en stockant tes données non pas dans des feuilles mais dans des fichiers texte (*.txt ou *.csv as you want - idem voir les exemples pour écrire et lire dans des fichiers fermés )

Vu le nombre conséquent de lignes de ton projet (plusieurs centaines), je n'ai pas matériellement de t'aider plus ce week-end.
 

Lone-wolf

XLDnaute Barbatruc
Re : Aide à la finalisation de mon projet

Remarques:
Groupe_Boutons_CD - -> module vide !
Groupe_Boutons_EL - -> module vide !
Groupe_Boutons_MV - -> module vide !
C'est normal, le code est dans la feuille Accueil.

Pour les modules de Classe, j'y est pensé; effectivement celà eviterais les macros répétitives dans le classeur. Le problème c'est de les programmer.

J'ai aussi essaié de suivre l'exemple de Jacques Boisgontier For each s In Worksheets, s étant les shapes.


A+ :cool:
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Aide à la finalisation de mon projet

Re

Lone-Wolf:
EDITION: Voici comment j'écrirai le code VBA dans ce module.

C'est là qu'il serait utile d'utiliser un module de classe (chose que je n'ai pas encore faite)


Ce n'est pas un problème en soi ;)
Puisque il y a suffisamment de matière sur XLD (qu'elle soit grise ou binaire, elle fréquente de nombreux fils de discussions utilisant des modules de classes)

Pourquoi garder un module s'il est vide ? (Cela alourdit ton fichier pour rien)

Que pense-tu de l'idée de stocker tes données brutes dans des fichiers texte plutôt que dans tes onglets ?
 

Pièces jointes

  • Groupe_Boutons_AB.zip
    588 bytes · Affichages: 31
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Aide à la finalisation de mon projet

Bonjour Staple,

j'ai testé ton code, pas de prob' Bob. ;)

J'ai essaié d'adapter avec For i = 28 to 37 en essayant de faire une seule macro, beaucoups de prob' Bob. :eek: ;)

Pour les fichiers .txt, ce n'ai pas un peu plus compliqué??


A+ et très bon Dimanche :cool:
 

Staple1600

XLDnaute Barbatruc
Re : Aide à la finalisation de mon projet

Bonjour


1) As-tu essayé de voir ce que tu trouvais du côté des modules de classes ?

2) Si ton projet était le mien, ma méthode serait celle-ci:
toutes les données brutes seraient externalisées en fichier txt (*.txt ou *.csv)
Le fichier Excel servira de visualiseur de ces données soit;
sur une(des) feuille(s) sur le classeur
sur des userforms

Mais comme ton projet est en cours de finalisation, je vais juste voir ce que je peux faire du côté des modules de classe.
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 799
Membres
101 818
dernier inscrit
tiftouf5757