Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1710 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Supprimer "Public Const WSBase" ??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Supprimer "Public Const WSBase" ??

n°1194651
archi57
Posté le 08-09-2005 à 09:13:50  profilanswer
 

Bjr,
J'aimerai supprimer proprement "Public Const WSBase" dans la macro suivante:
 

Citation :

Option Explicit  
   
Public Const WSBase As String = "Feuille D2"
 
Sub Equipe1_A()
Dim Rangebase As String
Dim RangeCount As String
Dim RangeCopy As String
Dim RowCopy As Integer
Dim i As Byte
   
   For i = 1 To 2
     
     Select Case i
        Case 1
            Rangebase = "C2"
            RangeCount = "D5:D7"
            RangeCopy = "B5"
            RowCopy = 4
        Case 2
            Rangebase = "C9"
            RangeCount = "D12:D14"
            RangeCopy = "B12"
            RowCopy = 11
             
     End Select
     
   
     Equipe Rangebase, RangeCount, RangeCopy, RowCopy
   Next i
   
End Sub


merci
 
bye


Message édité par archi57 le 08-09-2005 à 09:14:52
mood
Publicité
Posté le 08-09-2005 à 09:13:50  profilanswer
 

n°1194659
jagstang
Pa Capona ಠ_ಠ
Posté le 08-09-2005 à 09:19:01  profilanswer
 

supprime la ligne [:jagstang]


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1194679
galopin01
Posté le 08-09-2005 à 09:35:43  profilanswer
 

Bonjour,
Attention !
Cette expression n'est pas dans la macro... mais dans le module.
Elle ne sert à rien dans le bout de macro que tu nous montres mais elle sert probablement à quelque chose dans les autres macros du classeur.
Pour pouvoir la supprimer complètement il faut remplacer toutes les occurences de WSBase dans le projet par "Feuille D2"  
Ensuite seulement tu pourras supprimer cette ligne.
Public Const WSBase As String = "Feuille D2"  
Ok ?


---------------
roger
n°1194776
archi57
Posté le 08-09-2005 à 11:26:59  profilanswer
 

merci galopin01,
En faite, je veux conserver "Public Const WSBase" dans le module 1, mais le supprimer dans les autres modules comme ont me la conseillé
voici la macro compléte dans le module 2
 

Citation :

Option Explicit
   
Public Const WSBase As String = "Feuille 5"
Sub Equipe5_A()
Dim Rangebase As String
Dim RangeCount As String
Dim RangeCopy As String
Dim RowCopy As Integer
Dim i As Byte
   
   For i = 1 To 3
     
        Select Case i
        Case 1
            Rangebase = "C2"
            RangeCount = "D5:D7"
            RangeCopy = "B5"
            RowCopy = 4
        Case 2
            Rangebase = "C9"
            RangeCount = "D12:D14"
            RangeCopy = "B12"
            RowCopy = 11
        Case 3
            Rangebase = "C16"
            RangeCount = "D19:D21"
            RangeCopy = "B19"
            RowCopy = 18
     End Select
     
   
     Equipe Rangebase, RangeCount, RangeCopy, RowCopy
   Next i
   
End Sub
   
   
   
Sub Equipe(Rangebase As String, RangeCount As String, RangeCopy As String, RowCopy As Integer)
Dim Nom As String
Dim Lig1 As Integer, Lig2 As Integer
Dim i As Integer
   
   
Application.ScreenUpdating = False
   With Sheets(WSBase).Range(Rangebase)
     If InStr(1, .Value, " " ) < 1 Then Exit Sub
     Nom = Left(.Value, InStr(1, .Value, " " ) + 1) + "."
     Nom = Application.WorksheetFunction.Proper(Nom)
   End With
   
   With Sheets(Nom)
     Lig1 = .Range("A10000" ).End(xlUp).Row
     Range(.Range("H" & Lig1 + 1), .Range("H" & Lig1 + 3)).Clear
   End With
     
   With Sheets(WSBase)
     i = Application.CountA(.Range(RangeCount))
     .Range(RangeCopy & ":I" & RowCopy + i).Copy
   End With
     
   With Sheets(Nom)
     .Range("A65536" ).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteFormats
     .Range("A65536" ).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
     Range(.Range("A4" ), .Range("H" & Lig1)).Validation.Delete
     Lig1 = .Range("A65536" ).End(xlUp).Row
     Lig2 = .Range("J65536" ).End(xlUp).Row + 1
     .Range("A4:H" & Lig1).Validation.Delete
     Range(.Range("A4" ), .Range("H" & Lig1)).Sort Key1:=.Range("A4" ), Order1:=xlAscending
     Range(.Range("J" & Lig2 - 1), .Range("M" & Lig2 - 1)).AutoFill _
     Destination:=Range(.Range("J" & Lig2 - 1), .Range("M" & Lig1)), Type:=xlFillDefault
   End With
     
Sheets("Eq5" ).Activate
   
Application.ScreenUpdating = True
End Sub
 
Sub Equipe5_X()
Dim Rangebase As String
Dim RangeCount As String
Dim RangeCopy As String
Dim RowCopy As Integer
Dim i As Byte
   
   For i = 1 To 3
     
        Select Case i
        Case 1
            Rangebase = "C23"
            RangeCount = "D26:D28"
            RangeCopy = "B26"
            RowCopy = 25
        Case 2
            Rangebase = "C30"
            RangeCount = "D33:D35"
            RangeCopy = "B33"
            RowCopy = 32
        Case 3
            Rangebase = "C37"
            RangeCount = "D40:D42"
            RangeCopy = "B40"
            RowCopy = 39
     End Select
     
   
     Equipe Rangebase, RangeCount, RangeCopy, RowCopy
   Next i
   
End Sub


Message édité par archi57 le 08-09-2005 à 11:29:03
n°1195530
galopin01
Posté le 08-09-2005 à 21:29:37  profilanswer
 

bonsoir archi57,
T'es en train de nous faire une drôle de cuisine !
Tu as déjà une déclaration  
Public Const WSBase As String = "Feuille D2" dans un module
Public Const WSBase As String = "Feuille 5" dans un module
T'as combien de modules et combien de déclarations WSBase ?
 
Normalement il ne devrait y en avoir qu'une en tout et pour tout
ou alors si elles sont toutes différentes il ne faut pas les déclarer Public
 
De plus la lecture de ton précédent Topic me laisse à penser que l'on s'achemine vers des emm... en forme de poupées russes.
En effet tu sembles avoir une macro équipe qui fait référence à la feuilleD2
une macro Equipe5 qui fait référence à la feuille5  
(le tout au travers des mêmes Public Constantes toutes différentes)  :heink:  
 
Il me parait urgent de stopper les frais et de faire une analyse globale de ta cuisine avant d'entreprendre un hachis sauvage.
Si je peux avoir une vue générale sur TOUTES les macros (de préférence avant que tu aies commencé à faire des modifs de ce genre) je veux bien examiner la situation.
 
Si ton classeur n'est pas trop volumineux ni confidentiel tu peux le mettre ici
sinon tu me l'envoies directement en pièce jointe :
http://perso.wanadoo.fr/galopin01/images/email.jpg
A+
 


---------------
roger
n°1195702
archi57
Posté le 09-09-2005 à 09:11:37  profilanswer
 

merci galopin01 je vais t'envoyer mon fichier par email
bye

n°1198100
galopin01
Posté le 13-09-2005 à 09:56:19  profilanswer
 

bonjour,  
j'ai parfois des doutes sur le fonctionnement de ma messagerie. As-tu reçu mes différents messages ?
Je t'avais envoyé un code qui répondait exactement à ta question (à dupliquer dans chaque module)
Je t'avais envoyé également un fichier démo je le joins à nouveau ici
Contrairement au précédent celui-ci est débogué tu peux donc te servir de ce classeur sans problème... (enfin, en principe!)
A+


Message édité par galopin01 le 13-09-2005 à 09:59:59

---------------
roger
n°1198673
archi57
Posté le 13-09-2005 à 16:08:14  profilanswer
 

merci,mais je n'ai reçu aucun mail de ta part !!!
RDV en message privé si tu veux ??


Message édité par archi57 le 13-09-2005 à 16:22:06
n°1198867
galopin01
Posté le 13-09-2005 à 21:14:36  profilanswer
 

bonsoir,  
ma réponse est dans la MP
Comme je pense que celà est peut être un peu indigeste, je résume.
je t'ai mis en MP un code qui remplace et supprime WSBase dans un module
mais celà ne présente guère d'intérêt et de toute façon tu ne peux pas laisser subsister cette constante dans aucun module.
Il faut donc gérer la suppression de cette constante au coup par coup et module par module. Encore une fois celà ne présente guère d'intérêt (si ce n'est l'orthodoxie de la syntaxe)
 
Je t'ai donc mis un autre classeur ou j'ai essayé de faire quelque chose de mieux optimisé.
 
Au moment ou je rédige je me rends compte que je peux encore te concocter une variante intermédiaire qui sera peut-être plus lisible pour toi et peut-être aussi plus proche de ce que tu attendais.
 
Je te fignole ça et je te mettrai cette seconde solution dans un moment.
A+


---------------
roger
n°1198885
galopin01
Posté le 13-09-2005 à 21:58:23  profilanswer
 

re...
50 minutes pour te pondre cette version intermédiaire ici !
Inutile de te dire que je n'ai rien vérifié ni débogué,
à fortiori, je n'ai pas non plus éliminé les petites bricoles que j'avais épuré dans ton code, dans la version 1
A toi de voir, vérifie, cherche et comprends !
j'ai juste remis de l'ordre dans le nom de tes modules pour qu'on s'y retrouve plus facilement. (ils se trouvent désormais en tête de liste)
je reste à ta disposition.
A+


Message édité par galopin01 le 13-09-2005 à 22:07:21

---------------
roger
mood
Publicité
Posté le 13-09-2005 à 21:58:23  profilanswer
 

n°1199267
galopin01
Posté le 14-09-2005 à 12:30:40  profilanswer
 

Bonjour,
Je t'ai juste mis un petit commentaire en MP pour éclaircir un peu le fonctionnement de la Sub Jet (dans la première version de mes cogitations...).
La v2 coule de source, je pense ?
A+


---------------
roger

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Supprimer "Public Const WSBase" ??

 

Sujets relatifs
supprimer ou remplacer "alt entrée" à travers vbaComment supprimer une CLE registre en batch
[Flash/ActionScript] Supprimer les lignes crées avec ASsupprimer le Timeout php avec Xampp
supprimer le message a l'ouverture de WordSupprimer un htacces
Comment supprimer une ligne par un script dans base de donnée AccessUtilitaire pour supprimer les accents ?
[HTML/CSS] Supprimer les espaces autour du texte[FTP] Comment télécharger puis supprimer les fichiers
Plus de sujets relatifs à : Supprimer "Public Const WSBase" ??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR