Impossible de copier coller après le lancement de la macro

Bonjour à tous,

J'ai un petit souci. J'ai réalisé une macro qui fonctionne très bien. Cependant, après que cette macro soit lancer, je suis incappable de copier coller des cellules de mon tableur. Je dois appuyer sur la touche Echap avant de pouvoir réussir.

Je cherche donc la formule à ajouter à ma macro permettant de supprimer les actions en cours, l'équivalent de la touche Echap (je n'arrive pas à la trouver sur le s forums).

Auriez vous une idée ?

Je vous joins la macro (elle un peu longue et je ne sais pas si ça va vous servir) :

Private Sub Button_Valider_Click()

    Sheets("Fiche Données").Cells(155, 5) = "00"
    Sheets("Fiche Données").Cells(156, 5) = "01"
    Sheets("Fiche Données").Cells(157, 5) = "02"
    Sheets("Fiche Données").Cells(158, 5) = "03"
    Sheets("Fiche Données").Cells(159, 5) = "04"
    Sheets("Fiche Données").Cells(160, 5) = "05"
    Sheets("Fiche Données").Cells(161, 5) = "06"
    Sheets("Fiche Données").Cells(162, 5) = "07"
    Sheets("Fiche Données").Cells(163, 5) = "08"
    Sheets("Fiche Données").Cells(164, 5) = "09"
    Sheets("Fiche Données").Cells(165, 5) = "10"
    Sheets("Fiche Données").Cells(166, 5) = "11"
    Sheets("Fiche Données").Cells(167, 5) = "12"
    Sheets("Fiche Données").Cells(168, 5) = "13"
    Sheets("Fiche Données").Cells(169, 5) = "14"
    Sheets("Fiche Données").Cells(170, 5) = "15"
    Sheets("Fiche Données").Cells(171, 5) = "16"
    Sheets("Fiche Données").Cells(172, 5) = "17"
    Sheets("Fiche Données").Cells(173, 5) = "18"
    Sheets("Fiche Données").Cells(174, 5) = "19"
    Sheets("Fiche Données").Cells(175, 5) = "20"
    Sheets("Fiche Données").Cells(176, 5) = "21"
    Sheets("Fiche Données").Cells(177, 5) = "22"
    Sheets("Fiche Données").Cells(178, 5) = "23"
    Sheets("Fiche Données").Cells(179, 5) = "24"
    Sheets("Fiche Données").Cells(180, 5) = "25"
    Sheets("Fiche Données").Cells(181, 5) = "26"
    Sheets("Fiche Données").Cells(182, 5) = "27"
    Sheets("Fiche Données").Cells(183, 5) = "28"
    Sheets("Fiche Données").Cells(184, 5) = "29"
    Sheets("Fiche Données").Cells(185, 5) = "30"

' Si décomposition 1 est choisie alors on insere 2 lignes entre chaque nom de feuille

    If OptionButton1.Value = True Then

        Sheets("Export").Visible = True
        Sheets("Export").Activate
        Range("Supr_Export").Clear

    'On cherche a différencier les différentes zones (Fondations / Infra / Super / Terrasse)
        Dim T As Integer, Tx As Integer

        T = Worksheets.Count
        For Tx = 1 To T - 6
            Sheets("Export").Cells(1, 1) = Sheets("Fiche Données").Range("B5")
            Sheets("Export").Cells(1, 2) = "Durée"
            Sheets("Export").Cells(1, 3) = "Date de début"
            Sheets("Export").Cells(1, 4) = "Date de fin"
            Sheets("Export").Cells(1, 5) = "Quantité"
            Sheets("Export").Cells(1, 6) = "Unités"
            Sheets("Export").Cells(1, 7) = "Cadence Objective"
            Sheets("Export").Cells(1, 8) = "Quantité"
            Sheets("Export").Cells(1, 9) = "Unités"
            Sheets("Export").Cells(1, 10) = "Cadence Objective"
            Sheets("Export").Cells(1, 11) = "Nom Navisworks"

            Sheets("Export").Cells(1, 13) = "Niveaux"
            Sheets("Export").Cells(1, 14) = "Niveaux Navis"
            Sheets("Export").Cells(1, 15) = "Zones"
            Sheets("Export").Cells(1, 16) = "Zones Navis"

    'On copie le nom de chaque niveau sur la colonne A
        Sheets("Export").Cells(3 * Tx, 1) = Sheets("Fiche Données").Cells(4, Tx + 6)
        'Niveaux
        Cells(3 * Tx, 13).Value = Sheets("Fiche Données").Cells(9, Tx + 6)
        'Zones
        Cells(3 * Tx, 15).Value = Sheets("Fiche Données").Cells(10, Tx + 6)

        'Voiles - Poteaux
            Sheets("Export").Cells(3 * Tx + 1, 1).Value = "Voiles - Poteaux"
            'Durée
            Sheets("Export").Cells(3 * Tx + 1, 2).Value = Sheets(Tx + 6).Range("H59") & " jours"
            'Quantité des Voiles - Poteaux - ml
            Sheets("Export").Cells(3 * Tx + 1, 5).Value = Sheets(Tx + 6).Range("E26")
            'Unités des Voiles - Poteaux - ml
            Sheets("Export").Cells(3 * Tx + 1, 6).Value = "ml"
            'Quantité des Voiles - Poteaux - m²
            Sheets("Export").Cells(3 * Tx + 1, 8).Value = Sheets(Tx + 6).Range("E27")
            'Unités des Voiles - Poteaux - m²
            Sheets("Export").Cells(3 * Tx + 1, 9).Value = "m²"
            'Niveaux
            Cells(3 * Tx + 1, 13).Value = Sheets("Fiche Données").Cells(9, Tx + 6)
            'Zones
            Cells(3 * Tx + 1, 15).Value = Sheets("Fiche Données").Cells(10, Tx + 6)

        'Poutres - Plancher
            Sheets("Export").Cells(3 * Tx + 2, 1).Value = "Poutres - Plancher"
            'Durée
            Sheets("Export").Cells(3 * Tx + 2, 2).Value = Sheets(Tx + 6).Range("H59") & " jours"
            'Quantité des Poutres - Plancher
            Sheets("Export").Cells(3 * Tx + 2, 5).Value = Sheets(Tx + 6).Range("E31")
            Sheets("Export").Cells(3 * Tx + 2, 8).Value = Sheets(Tx + 6).Range("E33")
            'Unités des Poutres - Plancher
            Sheets("Export").Cells(3 * Tx + 2, 6).Value = "u"
            Sheets("Export").Cells(3 * Tx + 2, 9).Value = "m²"
            'Niveaux
            Cells(3 * Tx + 2, 13).Value = Sheets("Fiche Données").Cells(9, Tx + 6)
            'Zones
            Cells(3 * Tx + 2, 15).Value = Sheets("Fiche Données").Cells(10, Tx + 6)

        'Ouvrages Divers + Finitions
            Sheets("Export").Cells(3 * (T - 6) + 3, 1).Value = "Ouvrages Divers"
            Sheets("Export").Cells(3 * (T - 6) + 4, 1).Value = "Finitions"

        Next Tx

    'On réalise la correspondance Zones / Zones Navisworks

        Set wsh1 = Worksheets("Export")
        Set wsh2 = Worksheets("Fiche Données")

        lastlig = wsh1.Cells(Rows.Count, "M").End(xlUp).Row

        'Valeurs dans la colonne K feuille Export
        For Ligne = 3 To lastlig

            'Recherche produit dans la colonne B de la feuille Fiche Données
            Set C = wsh2.Columns("B").Find(wsh1.Cells(Ligne, "O").Value, LookIn:=xlValues, lookat:=xlWhole)
            'Si une occurence a été trouvé
            If Not C Is Nothing Then
            'Copie de la valeur correspondante de feuille Fiche Données vers feuille Export
            wsh1.Cells(Ligne, "P").Value = wsh2.Range(C.Address).Offset(0, 1)

            End If

            Set U = Worksheets("Export")
            V = U.Cells(Ligne, "O")

            If V = "" Then
            Cells(Ligne, "M").Value = "TZ"
            End If

        Next Ligne

    'On réalise la correspondance Niveaux / Niveaux Navisworks

        Set wsh1 = Worksheets("Export")
        Set wsh2 = Worksheets("Fiche Données")

        lastlig = wsh1.Cells(Rows.Count, "M").End(xlUp).Row

        'Valeurs dans la colonne K feuille Export
        For Ligne = 3 To lastlig

            'Recherche produit dans la colonne D de la feuille Fiche Données
            Set C = wsh2.Columns("D").Find(wsh1.Cells(Ligne, "M").Value, LookIn:=xlValues, lookat:=xlWhole)
            'Si une occurence a été trouvé
            If Not C Is Nothing Then
            'Copie de la valeur correspondante de feuille Fiche Données vers feuille Export
            wsh1.Cells(Ligne, "N").Value = wsh2.Range(C.Address).Offset(0, 1)

            End If

        Next Ligne

    'On renomme la colonne Nom Navisworks

        Dim J As Integer, Jx As Integer

        J = Worksheets.Count

        For Jx = 1 To J - 6

            Sheets("Export").Cells(3 * Jx + 1, 11).Value = Cells(1, 1) & "_" & Cells(3 * Jx + 1, 14) & "_" & Cells(3 * Jx + 1, 16) & "_" & "Voiles_Poteaux"
            Sheets("Export").Cells(3 * Jx + 2, 11).Value = Cells(1, 1) & "_" & Cells(3 * Jx + 1, 14) & "_" & Cells(3 * Jx + 2, 16) & "_" & "Poutres_Plancher"

        Next Jx

    'On insere une ligne Fondation par zone
        Set wsh11 = Worksheets("Export")
        Set wsh12 = Worksheets("Fiche Données")

        lastlig = wsh12.Cells(Rows.Count, "C").End(xlUp).Row

        'Valeurs dans la colonne C feuille Export
        For Ligne = 1 To lastlig - 154

            'Insertion ligne
            wsh11.Cells(2 + Ligne, 1).EntireRow.Insert
            'Renseigner le nom de la zone avec le terme "fondations"
            wsh11.Cells(2 + Ligne, 1).Value = "Fondations - Zone " & wsh12.Cells(154 + Ligne, 2).Value

            'Zones
            wsh11.Cells(2 + Ligne, 15).Value = wsh12.Cells(154 + Ligne, 2)

            'Liaison Zones / Zones Navisworks
                'Recherche produit dans la colonne B de la feuille Fiche Données
                Set C = wsh12.Columns("B").Find(wsh11.Cells(2 + Ligne, "O").Value, LookIn:=xlValues, lookat:=xlWhole)
                'Si une occurence a été trouvé
                If Not C Is Nothing Then
                'Copie de la valeur correspondante de feuille Fiche Données vers feuille Export
                wsh11.Cells(2 + Ligne, "P").Value = wsh12.Range(C.Address).Offset(0, 1)

                End If

                Set U = Worksheets("Export")
                V = U.Cells(Ligne, "O")

                If V = "" Then
                Sheets("Export").Cells(Ligne, "P").Value = "TZ"
                End If

            'On renomme la colonne Nom Navisworks

                wsh11.Cells(2 + Ligne, "K").Value = Cells(1, 1) & "_" & Cells(2 + Ligne, 16) & "_" & "Fondations"

        Next Ligne

End If

' Si décomposition 2 est choisie alors on insere 3 lignes entre chaque nom de feuille

    If OptionButton2.Value = True Then

        Sheets("Export").Visible = True
        Sheets("Export").Activate
        Range("Supr_Export").Clear

    'On cherche a différencier les différentes zones (Fondations / Infra / Super / Terrasse)
        Dim P As Integer, Px As Integer

        P = Worksheets.Count
        For Px = 1 To P - 6
            Sheets("Export").Cells(1, 1) = Sheets("Fiche Données").Range("B5")
            Sheets("Export").Cells(1, 2) = "Durée"
            Sheets("Export").Cells(1, 3) = "Date de début"
            Sheets("Export").Cells(1, 4) = "Date de fin"
            Sheets("Export").Cells(1, 5) = "Quantité"
            Sheets("Export").Cells(1, 6) = "Unités"
            Sheets("Export").Cells(1, 7) = "Cadence Objective"
            Sheets("Export").Cells(1, 8) = "Quantité"
            Sheets("Export").Cells(1, 9) = "Unités"
            Sheets("Export").Cells(1, 10) = "Cadence Objective"
            Sheets("Export").Cells(1, 11) = "Nom Navisworks"

            Sheets("Export").Cells(1, 13) = "Niveaux"
            Sheets("Export").Cells(1, 14) = "Niveaux Navis"
            Sheets("Export").Cells(1, 15) = "Zones"
            Sheets("Export").Cells(1, 16) = "Zones Navis"

    'On copie le nom de chaque niveau sur la colonne A
        Sheets("Export").Cells(4 * Px, 1) = Sheets("Fiche Données").Cells(4, Px + 6)
        'Niveaux
        Cells(4 * Px, 13).Value = Sheets("Fiche Données").Cells(9, Px + 6)
        'Zones
        Cells(4 * Px, 15).Value = Sheets("Fiche Données").Cells(10, Px + 6)

        'Voiles
            Sheets("Export").Cells(4 * Px + 1, 1).Value = "Voiles"
            'Durée
            Sheets("Export").Cells(4 * Px + 1, 2).Value = Sheets(Px + 6).Range("H59") & " jours"
            'Quantité des Voiles - ml
            Sheets("Export").Cells(4 * Px + 1, 5).Value = Sheets(Px + 6).Range("E26")
            'Unités des Voiles - ml
            Sheets("Export").Cells(4 * Px + 1, 6).Value = "ml"
            'Quantité des Voiles - m²
            Sheets("Export").Cells(4 * Px + 1, 8).Value = Sheets(Px + 6).Range("E27")
            'Unités des Voiles - m²
            Sheets("Export").Cells(4 * Px + 1, 9).Value = "m²"
            'Niveaux
            Cells(4 * Px + 1, 13).Value = Sheets("Fiche Données").Cells(9, Px + 6)
            'Zones
            Cells(4 * Px + 1, 15).Value = Sheets("Fiche Données").Cells(10, Px + 6)

        'Poteaux - Poutres
            Sheets("Export").Cells(4 * Px + 2, 1).Value = "Poteaux - Poutres"
            'Durée
            Sheets("Export").Cells(4 * Px + 2, 2).Value = Sheets(Px + 6).Range("H59") & " jours"
            'Quantité des Poteaux - Poutres
            Sheets("Export").Cells(4 * Px + 2, 5).Value = Sheets(Tx + 6).Range("E29")
            Sheets("Export").Cells(4 * Px + 2, 8).Value = Sheets(Tx + 6).Range("E31")
            'Unités des Poteaux - Poutres
            Sheets("Export").Cells(4 * Px + 2, 6).Value = "u"
            Sheets("Export").Cells(4 * Px + 2, 9).Value = "u"
            'Niveaux
            Cells(4 * Px + 2, 13).Value = Sheets("Fiche Données").Cells(9, Px + 6)
            'Zones
            Cells(4 * Px + 2, 15).Value = Sheets("Fiche Données").Cells(10, Px + 6)

        'Plancher
            Sheets("Export").Cells(4 * Px + 3, 1).Value = "Plancher"
            'Durée
            Sheets("Export").Cells(4 * Px + 3, 2).Value = Sheets(Px + 6).Range("H59") & " jours"
            'Quantité des Planchers
            Sheets("Export").Cells(4 * Px + 3, 5).Value = Sheets(Px + 6).Range("E33")

            'Unités des Planchers
            Sheets("Export").Cells(4 * Px + 3, 6).Value = "m²"

            'Niveaux
            Cells(4 * Px + 3, 13).Value = Sheets("Fiche Données").Cells(9, Px + 6)
            'Zones
            Cells(4 * Px + 3, 15).Value = Sheets("Fiche Données").Cells(10, Px + 6)

        'Ouvrages Divers + Finitions
            Sheets("Export").Cells(4 * (P - 6) + 4, 1).Value = "Ouvrages Divers"
            Sheets("Export").Cells(4 * (P - 6) + 5, 1).Value = "Finitions"

        Next Px

    'On réalise la correspondance Zones / Zones Navisworks

        Set wsh1 = Worksheets("Export")
        Set wsh2 = Worksheets("Fiche Données")

        lastlig = wsh1.Cells(Rows.Count, "M").End(xlUp).Row

        'Valeurs dans la colonne K feuille Export
        For Ligne = 3 To lastlig

            'Recherche produit dans la colonne B de la feuille Fiche Données
            Set C = wsh2.Columns("B").Find(wsh1.Cells(Ligne, "O").Value, LookIn:=xlValues, lookat:=xlWhole)
            'Si une occurence a été trouvé
            If Not C Is Nothing Then
            'Copie de la valeur correspondante de feuille Fiche Données vers feuille Export
            wsh1.Cells(Ligne, "P").Value = wsh2.Range(C.Address).Offset(0, 1)

            End If

            Set U = Worksheets("Export")
            V = U.Cells(Ligne, "O")

            If V = "" Then
            Cells(Ligne, "P").Value = "TZ"
            End If

        Next Ligne

    'On réalise la correspondance Niveaux / Niveaux Navisworks

        Set wsh1 = Worksheets("Export")
        Set wsh2 = Worksheets("Fiche Données")

        lastlig = wsh1.Cells(Rows.Count, "M").End(xlUp).Row

        'Valeurs dans la colonne K feuille Export
        For Ligne = 3 To lastlig

            'Recherche produit dans la colonne D de la feuille Fiche Données
            Set C = wsh2.Columns("D").Find(wsh1.Cells(Ligne, "M").Value, LookIn:=xlValues, lookat:=xlWhole)
            'Si une occurence a été trouvé
            If Not C Is Nothing Then
            'Copie de la valeur correspondante de feuille Fiche Données vers feuille Export
            wsh1.Cells(Ligne, "N").Value = wsh2.Range(C.Address).Offset(0, 1)

            End If

        Next Ligne

    'On renomme la colonne Nom Navisworks

        Dim H As Integer, Hx As Integer

        H = Worksheets.Count

        For Hx = 1 To H - 6

            Sheets("Export").Cells(4 * Hx + 1, 11).Value = Cells(1, 1) & "_" & Cells(4 * Hx + 1, 14) & "_" & Cells(3 * Hx + 1, 16) & "_" & "Voiles"
            Sheets("Export").Cells(4 * Hx + 2, 11).Value = Cells(1, 1) & "_" & Cells(4 * Hx + 1, 14) & "_" & Cells(3 * Hx + 2, 16) & "_" & "Poteaux_Poutres"
            Sheets("Export").Cells(4 * Hx + 3, 11).Value = Cells(1, 1) & "_" & Cells(4 * Hx + 1, 14) & "_" & Cells(3 * Hx + 3, 16) & "_" & "Plancher"

        Next Hx

    'On insere une ligne Fondation par zone
        Set wsh11 = Worksheets("Export")
        Set wsh12 = Worksheets("Fiche Données")

        lastlig = wsh12.Cells(Rows.Count, "C").End(xlUp).Row

        'Valeurs dans la colonne C feuille Export
        For Ligne = 1 To lastlig - 154

            'Insertion ligne
            wsh11.Cells(2 + Ligne, 1).EntireRow.Insert
            'Renseigner le nom de la zone avec le terme "fondations"
            wsh11.Cells(2 + Ligne, 1).Value = "Fondations - Zone " & wsh12.Cells(154 + Ligne, 2).Value

            'Zones
            wsh11.Cells(2 + Ligne, 15).Value = wsh12.Cells(154 + Ligne, 2)

            'Liaison Zones / Zones Navisworks
                'Recherche produit dans la colonne B de la feuille Fiche Données
                Set C = wsh12.Columns("B").Find(wsh11.Cells(2 + Ligne, "O").Value, LookIn:=xlValues, lookat:=xlWhole)
                'Si une occurence a été trouvé
                If Not C Is Nothing Then
                'Copie de la valeur correspondante de feuille Fiche Données vers feuille Export
                wsh11.Cells(2 + Ligne, "P").Value = wsh12.Range(C.Address).Offset(0, 1)

                End If

                Set U = Worksheets("Export")
                V = U.Cells(Ligne, "L")

                If V = "" Then
                Sheets("Export").Cells(Ligne, "M").Value = "TZ"
                End If

            'On renomme la colonne Nom Navisworks

                wsh11.Cells(2 + Ligne, "K").Value = Cells(1, 1) & "_" & Cells(2 + Ligne, 16) & "_" & "Fondations"

        Next Ligne

End If

'On masque les colonnes M à P
    Sheets("Export").Range("M:M").EntireColumn.Hidden = True
    Sheets("Export").Range("N:N").EntireColumn.Hidden = True
    Sheets("Export").Range("O:O").EntireColumn.Hidden = True
    Sheets("Export").Range("P:P").EntireColumn.Hidden = True

Unload Me

End Sub

Bonjour

Je cherche donc la formule à ajouter à ma macro permettant de supprimer les actions en cours, l'équivalent de la touche Echap (je n'arrive pas à la trouver sur le s forums).

Avec ceci --> Ctrl + Pause ou Shift + Pause

Le début de votre macro :

Sheets("Fiche Données").Cells(156, 5) = "01"
Sheets("Fiche Données").Cells(157, 5) = "02"
Sheets("Fiche Données").Cells(158, 5) = "03"
Sheets("Fiche Données").Cells(159, 5) = "04"
....

peut être simplifié comme ceci :

For i = 1 To 30
    With Sheets("Fiche Données")
        .Cells(i + 155, 5).NumberFormat = "@"
        .Cells(i + 155, 5) = Format(i - 1, "00") '"00"
    End With
Next i

Si ok et terminé, merci de cloturer le fil en cliquant sur le V vert à coté du bouton EDITER lors de votre réponse

Cordialement

Merci, je vais changer cela.

Cependant ma question concernait l'impossibilité de réaliser un copier coller suite à l'exécution de la macro. Je pense qu'il doit exister une formule, equivalent à la touche echap.

Re

C est ecrit dans mon post precedent.... --> Ctrl + pause ou Shift + pause

Cordialement

Rechercher des sujets similaires à "impossible copier coller lancement macro"