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....
Cordialement