Pb d'affichage, de conditions et de lancement de macro

Gerardd

XLDnaute Nouveau
Bonjour,

Deux choses aujourd’hui :

1. Je planche sur une macro qui numérote les cellules lorsqu’on sélectionne une plage de cellule sous forme de colonne (c’est pour faire des devis).
L’idée c’est qu’on rentre nos désignations en laissant une ligne de libre entre chacune, de sélectionner la colonne à gauche et que la macro mette les numérotations, ex :
1. Démolition de mur
2. Construction de mur

Il faut être vigilant car une désignation peut se trouver sur deux lignes.

J’ai commencé à taper le code, le voici :

Option Explicit
Public k As Integer


Sub Numérotation()

Dim plage As Range, cel As Range
Set plage = Intersect(selection, Columns(selection.Column), ActiveSheet.UsedRange)
If plage Is Nothing Then Exit Sub
Application.ScreenUpdating = False

k = 0

For Each cel In plage

"Si la case à droite est non vide et que la case en dessus à droite est vide alors"

cel.Value = "k."
k = k + 1

Next

"Sinon, on passe à la suivante"

End Sub




2. J’ai une macro qui, lorsqu’on va taper un code dans une cellule va chercher la désignation y correspondant dans des onglets (tjrs pour la rédaction de devis).
Pour l’instant j’ai réussi à l’appliquer sur une sélection de cellule. Mais maintenant mon chef souhaiterai que la macro s’applique dès qu’on tape le code (il ne veut plus qu’on fasse control+A sur une sélection de cellule).
Les codes vont de 1 000 à 11 000. Pour info, voici le code :


Option Explicit

Public PetitVRD As Worksheet, installchant As Worksheet, travauxprepa As Worksheet,
Public I As Integer, J As Integer, k As Integer
Dim Licop As Integer, Licol As Integer, LiAnc As Integer, LiFin As Integer, LiOrg As Integer
Public Code As String, Un As String
Public Champ As Range, Calle As Range
Public Ach As String




Public Sub CopieLigne()

Dim plage As Range, cel As Range
Set plage = Intersect(selection, Columns(selection.Column), ActiveSheet.UsedRange)
If plage Is Nothing Then Exit Sub
Application.ScreenUpdating = False
For Each cel In plage
If cel <> "" Then
cel.Activate



Set PetitVRD = ThisWorkbook.Worksheets("Petit VRD")
Set installchant = ThisWorkbook.Worksheets("Installation de chantier")
Set travauxprepa = ThisWorkbook.Worksheets("travaux préparatoires")



If ActiveSheet.Name = installchant.Name Then
I = MsgBox("Cette fonction ne s'applique pas dans la feuille Installation de chantier", vbOKOnly, "PetitVRD")
Exit Sub
End If

If ActiveSheet.Name = travauxprepa.Name Then
I = MsgBox("Cette fonction ne s'applique pas dans la feuille Travaux préparatoires", vbOKOnly, "PetitVRD")
Exit Sub
End If

LiAnc = 4: LiFin = 500

Set Calle = ActiveCell
Code = Calle.Value
Un = Calle.Offset(0, 1).Value
Licol = Calle.Row
With installchant
Set Champ = .Range(.Cells(LiAnc, 1), .Cells(LiFin, 1)).Find(what:=Code, LookIn:=xlValues, lookat:=xlWhole, SearchOrder:=xlByColumns)
If Champ Is Nothing Then

With travauxprepa
Set Champ = .Range(.Cells(LiAnc, 1), .Cells(LiFin, 1)).Find(what:=Code, LookIn:=xlValues, lookat:=xlWhole, SearchOrder:=xlByColumns)
If Champ Is Nothing Then


Else
Licop = Champ.Row
.Range(.Cells(Licop, 3), .Cells(Licop, 7)).Copy Destination:=PetitVRD.Cells(Licol, 2)

End If
End With


Else
Licop = Champ.Row
.Range(.Cells(Licop, 3), .Cells(Licop, 7)).Copy Destination:=PetitVRD.Cells(Licol, 2)
End If
End With


PetitVRD.Activate
Set Calle = Nothing
Set Champ = Nothing
Set PetitVRD = Nothing
Set installchant = Nothing
Set travauxterr = Nothing

End If
Next

End Sub
 

camarchepas

XLDnaute Barbatruc
Re : Pb d'affichage, de conditions et de lancement de macro

Bonjour ,

Le code sans le fichier ne sert pas à grand chose , vu le nombre de réponse...,
donnes nous au moins un extrait de ton fichier, mets des données bidons dedans si tu veux , mais sinon ont va pédaler dans la choucroute pendant au moins six mois....
 

Gerardd

XLDnaute Nouveau
Re : Pb d'affichage, de conditions et de lancement de macro

Voici le fichier... encore merci!
 

Pièces jointes

  • DQE pour forum.zip
    38.4 KB · Affichages: 18
  • DQE pour forum.zip
    38.4 KB · Affichages: 23
  • DQE pour forum.zip
    38.4 KB · Affichages: 18

camarchepas

XLDnaute Barbatruc
Re : Pb d'affichage, de conditions et de lancement de macro

Bonjour Gérard,

Voici donc une proposition de saisie via un formulaire.

Pour plus de facilité, j'ai également créé un onglet Indexe regroupant diverses informations sur chaque onglet 'Rubrique'.

les boutons valider et annuler ne sont pas encore opérationnels:D:D

Dis moi si la piste que je te propose t'intéresse, il reste juste le transfert vers le petit VRD . pas très complexe à faire

Voilà tiens moi au courant...
 

Pièces jointes

  • DQE pour forum.zip
    45.8 KB · Affichages: 21
  • DQE pour forum.zip
    45.8 KB · Affichages: 26
  • DQE pour forum.zip
    45.8 KB · Affichages: 24

Gerardd

XLDnaute Nouveau
Re : Pb d'affichage, de conditions et de lancement de macro

J'ai regardé ce que t'as fait, c'est pas mal du tout! Ca peut être vraiment mieux que ce que j'avais si on règle les points suivants:

-peut-on mettre la désignation dans le tableau comme actuellement mais par contre, renvoyer la désignation commerciale dans le devis (page qui s'apelle Petit VRD)?

- Dans quelle case les éléments vonts être renvoyés? L'idéal serait qu'on selectionne la case puis que le tableau apparaisse, ou qu'on reclique entre temps sur le tableau, je ne sais pas ce qui est possible.

- Pour l'instant on selectionne le prix total, ce serait bien qu'on ai pas à le faire. Il faudrai laisser le PU et la quantité et surtout une fois qu'on a renvoyé les cases dans Petit VRD que la formule PU*Q = prix tot fonctionne encore.

- Peut-on faire en sorte que la case "aide devis" n'apparaisse pas à l'impression?

- Reste la question de la numérotation (cf mon premier msg)

Je te remercie, c'est un super boulot!
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Pb d'affichage, de conditions et de lancement de macro

Bonjour,

J'ai dû retirer quelques onglets pour te transmettre le fichier, il te suffiras de les remettre , enregistrer puis fermer et réouvrir le classeur pour qu'ils soient pris en compte.

ATTENTION , bien passer par sélectionner position sur devis, ceci évite des bug d'affichage.

d'autre part , je suis pas certain pour la numérotation , mais bon tu va me dire,

Ensuite , il restera à réorganiser le récap (On verra en dernier)

Je préfére ne pas allez trop vite et attendre tes remarques,et tes confirmations sur le bon fonctionnement de l'ensemble.
 

Pièces jointes

  • DQE pour forum2.zip
    45.6 KB · Affichages: 22

Discussions similaires

Réponses
28
Affichages
919
Réponses
6
Affichages
202