Bloquer un bouton de macro

stephane.quinquis

XLDnaute Junior
Bonjour le forum,

J'ai une macro relié à un bouton. Ma macro transfère des données d'un classeur vers un autre classeur ligne par ligne.
Code:
Sub validationrefonteligne6()
'
' validationrefonte Macro
' Macro enregistrée le 12/04/2010 par quinquis

Workbooks.Open "\\S110dvp02\chefeq\STAGE S QUINQUIS\inventaire production.xls"
    Rows("7:7").Select
    Range("E7").Activate
    Selection.Insert Shift:=xlDown
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    Selection.Interior.ColorIndex = 2
    Selection.Font.ColorIndex = 0
    ActiveWindow.SmallScroll ToRight:=-4
    Range("O7:EL7").Select
    With Selection.Interior
        .ColorIndex = 15
        .Pattern = xlSolid
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    End With
    Windows("GRAM-vierge.xls").Activate
    Range("B6").Select
    Selection.Copy
   Windows("inventaire production.xls").Activate
    Range("M7").Select
    ActiveSheet.Paste
    Windows("GRAM-vierge.xls").Activate
    Range("C6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("inventaire production.xls").Activate
    Range("E7").Select
    ActiveSheet.Paste
    Windows("GRAM-vierge.xls").Activate
    Range("D6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("inventaire production.xls").Activate
    Range("L7").Select
    ActiveSheet.Paste
    Windows("GRAM-vierge.xls").Activate
    Range("E6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("inventaire production.xls").Activate
    Range("C7").Select
    ActiveSheet.Paste
    Windows("GRAM-vierge.xls").Activate
    Range("Q6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("inventaire production.xls").Activate
    Range("D7").Select
   Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Windows("GRAM-vierge.xls").Activate
    Range("R6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("inventaire production.xls").Activate
    Range("F7").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Windows("GRAM-vierge.xls").Activate
    Range("S6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("inventaire production.xls").Activate
    Range("G7").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Windows("GRAM-vierge.xls").Activate
    Range("T6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("inventaire production.xls").Activate
    Range("K7").Select
   Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Windows("GRAM-vierge.xls").Activate
    Range("U6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("inventaire production.xls").Activate
    Range("H7").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Windows("GRAM-vierge.xls").Activate
    Range("V6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("inventaire production.xls").Activate
    Range("I7").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Windows("GRAM-vierge.xls").Activate
    Range("W6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("inventaire production.xls").Activate
    ActiveWindow.SmallScroll ToRight:=3
    Range("J7").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Windows("GRAM-vierge.xls").Activate
    Range("X6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("inventaire production.xls").Activate
    Range("A7").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Windows("GRAM-vierge.xls").Activate
    Range("Y6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("inventaire production.xls").Activate
    Range("B7").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False
    ActiveWorkbook.Save
    ActiveWindow.Close
    ActiveWindow.SmallScroll ToRight:=-7
    Range("B6:Y6").Select
    Selection.Interior.ColorIndex = 6
End Sub

J'ai une case avec initiales en D5. Et par exemple en D6 une personne doit rentrer ses initiales.

Ma macro doit faire la chose suivante:
Si la case D6 est vide alors la macro ne s'éxécute pas et donc le transfert de données ne se fait pas

Si possible également afficher une message box avec"erreur car manque les initiales".

Mon problème essentiel est de savoir si je construis une autre macro pour cette condition ou alors si je peux le placer en début de macro.

Merci d'avance
 

Paritec

XLDnaute Barbatruc
Re : Bloquer un bouton de macro

Bonsoir Kjin, stephane,
Kjin de toutes façons je ne prendrai jamais mal un intervention de toi pour des tas de raisons, la première étant ta conpétence qui n'a plus a être prouvé et tes multiples réponses en sont la preuve plus de 4000 aujourd'hui !!!
Stéphane, oui pour t'aider c'est bien sur possible mais sans fichier c'est pas simple alors fais un petit exemple avec des explications dedans et tout va devenir simple!!!
pour ton message en cas de fichier ouvert, oui mais dans quel ordre tu le fais et surtout il manque un bout du chemin comment veux tu que cela marche ?? quel DIR ???
a te relire
a+
Papou :)
Workbooks.Open "\\S110dvp02\
 

stephane.quinquis

XLDnaute Junior
Re : Bloquer un bouton de macro

Bonjour papou,kjin et le forum

Merci de votre aide encore. Pour mon poste sur mon problème d'insertion de cellules copiées, je préfère vous diriger vers l'autre discussion que j'ai ouverte car ce serait difficile à gérer si on mélangeait les sujets:

https://www.excel-downloads.com/threads/insertion-cellules-copiees.140869/

Ensuite, pour mon bouton que je souhaite bloquer si un fichier est déjà ouvert, l'ordre est le suivant:
je bloque ma macro si le fichier inventaire production est déjà ouvert(c'est un autre classeur que celui sur lequel est ma macro)
je bloque ma macro dans le cas du manque d'initiales ou si elle est surligné en jaune(déjà résolu)
ma macro se déclenche en démarrant par l'ouverture du fichier précèdent dont j'ai bloqué l'accès s'il était déjà ouvert

Le but de ce blocage est qu'il n'y ait qu'une personne en même temps qui utilise le classeur "inventaire production" sachant que plusieurs personnes sur des ordinateurs différents sont amenés à incrémenter cet inventaire.

Merci

Stéphane
 

Discussions similaires

Réponses
2
Affichages
121
Réponses
5
Affichages
117

Statistiques des forums

Discussions
312 210
Messages
2 086 279
Membres
103 170
dernier inscrit
HASSEN@45