Je voudrais séparer deux paragraphes utilisant les fonctions "If" et "Then"
Bonjour,
Je suis un débutant en excel et j'ai un petit soucis
J'ai créé ce code pour qu'il me permette d'ouvrir un classeur selon une valeur (73 ou 79, ces valeurs correspondent à un diamètre) puis, qu'il inscrive des valeur dans la "sheet" voulu du classeur (avec des déplacements et des copier/coller (oui c'est rustique
Mais j'ai un 2 soucis :
- Le premier est que lorsque j'utilise ma macro, elle s'exécute entièrement, et essaie d'ouvrir les deux classeurs ; j'aimerais donc savoir comment faire en sorte que la macro n'exécute que le nécessaire
- Le second est que lorsque j'exécute ma macro, j'ai un message d'erreur qui est le suivant :
"Sheets("Oui").Select" ou alors "Sheets("Oui2").Select"
Merci pour votre temps, n'utilisant excel qu'à mon travail, je ne peux disposer des documents et de l'ordinateur chez moi, je testerais donc au travail et répondrais le soir.
Voici le code :
Sub Macroø73()
If ActiveCell.Value() = 73 Then Workbooks.Open _
Filename:="C:\users\u205698\Work Folders\Desktop\Bon de découpe ø73 test\Bon de découpe ø73 excel macro.xlsm"
Sheets("Oui").Select
Windows("Commande métal section.xlsm").Activate
ActiveCell.Offset(0, 1).Activate
Selection.Copy
Windows("Bon de découpe ø73 excel macro.xlsm").Activate
Range("I13:L14").Select
ActiveSheet.Paste
Windows("Commande métal section.xlsm").Activate
ActiveCell.Offset(0, 6).Activate
Application.CutCopyMode = False
Selection.Copy
Windows("Bon de découpe ø73 excel macro.xlsm").Activate
Range("C11:D12").Select
ActiveSheet.Paste
Application.CutCopyMode = False
If ActiveCell.Value() = 79 Then Workbooks.Open _
Filename:="C:\users\u205698\Work Folders\Desktop\Bon de découpe ø73 test\Bon de découpe ø79 excel macro.xlsm"
Sheets("Oui2").Select
Windows("Commande métal section.xlsm").Activate
ActiveCell.Offset(0, 1).Activate
Selection.Copy
Windows("Bon de découpe ø79 excel macro.xlsm").Activate
Range("I13:L14").Select
ActiveSheet.Paste
Windows("Commande métal section.xlsm").Activate
ActiveCell.Offset(0, 6).Activate
Application.CutCopyMode = False
Selection.Copy
Windows("Bon de découpe ø79 excel macro.xlsm").Activate
Range("C11:D12").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
Bonjour et bienvenue,
Avec un peu d'imagination !...
A tester.
Option Explicit
Const WB_1 As String = "C:\users\u205698\Work Folders\Desktop\Bon de découpe ?73 test\Bon de d?coupe ?73 excel macro.xlsm"
Const WB_2 As String = "C:\users\u205698\Work Folders\Desktop\Bon de découpe ?73 test\Bon de d?coupe ?79 excel macro.xlsm"
Const WS_1 As String = "Oui"
Const WS_2 As String = "Oui2"
Public Sub Macro_73()
'Dim wb As Workbook
Dim wb2 As Workbook
'Dim ws As Worksheet
Dim ws2 As Worksheet
Dim ACell As Range
'Set wb = ActiveWorkbook 'Commande métal section.xlsm ?
Set ACell = ActiveCell
'Set ws = ActiveCell.Parent
Select Case ACell.Value
Case 73:
Set wb2 = Workbook.Open(WB_1)
Set ws2 = wb2.Worksheets(WS_1)
Case 79:
Set wb2 = Workbook.Open(WB_2)
Set ws2 = wb2.Worksheets(WS_2)
Case Else: Exit Sub
End Select
ACell.Offset(, 1).Copy
ws2.Range("I13:L14").Paste
ACell.Offset(, 6).Copy
ws2.Range("C11:D12").Paste
Application.CutCopyMode = False
End Sub
Merci bien, c'est parfait ; passez une bonne journée !