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 :
"erreur execution 9: l'indice n'appartient pas à la sélection" ; le débogage désigne ces lignes :

"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 !

Rechercher des sujets similaires à "voudrais separer deux paragraphes utilisant fonctions then"