XL 2019 ActiveSheet.Paste ne fonctionne pas

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

eduraiss

XLDnaute Accro
Bonjour le forum

Activeseeht.paste ne fonctionne pas voici le code
J'ai changé de version excel, le fichier était en 97 2003 il est maintenant en xlsm, avant pas de soucis

voici le code
Sub autoshape()

For n = ActiveSheet.Shapes.Count To 1 Step -1
If InStr(ActiveSheet.Shapes(n).Name, "Oval") <> 0 Or InStr(ActiveSheet.Shapes(n).Name, "AutoShape") <> 0 Then
ActiveSheet.Shapes(n).Delete
End If
Next n

colonnes = Array("B", "C", "E", "G", "I", "J")

For n = LBound(colonnes) To UBound(colonnes)
For m = 1 To 149
If Range(colonnes(n) & m) <> "" Then
If InStr(Range(colonnes(n) & m), "?") = 0 Then

Set c = Sheets("CODEDATE").Range("N3:W1000").Find(Range(colonnes(n) & m), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
firstAddress = c.Address
Do

Select Case c.Column
Case 14
Sheets("CODEDATE").Shapes("Oval 10").Copy
Case 15
Sheets("CODEDATE").Shapes("Oval 94").Copy
Case 16
Sheets("CODEDATE").Shapes("Oval 95").Copy
Case 17
Sheets("CODEDATE").Shapes("Oval 96").Copy
Case 18
Sheets("CODEDATE").Shapes("Oval 97").Copy
Case 19
Sheets("CODEDATE").Shapes("Oval 98").Copy
Case 20
Sheets("CODEDATE").Shapes("Oval 99").Copy
Case 21
Sheets("CODEDATE").Shapes("Oval 100").Copy

End Select

ActiveSheet.Paste
If c.Column < 22 Then
Selection.Top = Range(colonnes(n) & m).Top + 2
Selection.Left = Range(colonnes(n) & m).Left + (c.Column - 14) * 8 + 2
Else

End If
Set c = Sheets("CODEDATE").Cells.FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End If
End If
Next m
Next n
Range("A1").Select

End Sub

Merci de votre aide
 
bonsoir le forum
Bonsoir job75 ET staple1600

En effet j'avais eu un problème sur le même sujet et je n'avais pas eu de réponses
Mais cela a fonctionner quand même avec cette macro
mais en changeant de version soit en 2019 alors là ça ne fonctionne plus du tout
Je m'excuse de revenir a la charge mais bon
Merci
 
Re, salut JM,

Sur les dernières versions d'excel il faut attendre que ActiveSheet.Paste s'exécute.

Alors dans la macro remplacez la ligne ActiveSheet.Paste par ces 5 lignes :
VB:
sc = ActiveSheet.Shapes.Count
Do
    ActiveSheet.Paste
    DoEvents
Loop While ActiveSheet.Shapes.Count = sc
A+
 
Dernière édition:
Re,
Essaie avec cette correction,

VB:
Sub test()
Dim Factive As Worksheet
Set Factive = Worksheets(ActiveSheet.Name)
Dim FGroupSemaine As Worksheet
Set FGroupSemaine = Worksheets("Groupe semaine")
Dim sh As Shape

For n = Factive.Shapes.Count To 1 Step -1
  If InStr(Factive.Shapes(n).Name, "Oval") <> 0 Or InStr(Factive.Shapes(n).Name, "AutoShape") <> 0 Then
    Factive.Shapes(n).Delete
  End If
Next n

Dim colonnes As Variant
colonnes = Array("C", "E", "G")
For n = LBound(colonnes) To UBound(colonnes)
  For m = 1 To Factive.Range(colonnes(n) & Factive.Range(colonnes(n) & 65536).End(xlUp).Row).Row
   If Factive.Range(colonnes(n) & m) <> "" Then
    If InStr(Factive.Range(colonnes(n) & m), "?") = 0 Then
     Set c = FGroupSemaine.Cells.Find(Factive.Range(colonnes(n) & m), LookIn:=xlValues, lookat:=xlWhole)
     
       If Not c Is Nothing Then
            firstAddress = c.Address
        Do
         'MsgBox (c.Value & " " & c.Address)
       If c.Column = 14 Then
         Set sh = FGroupSemaine.Shapes("AutoShape 13")
         sh.Duplicate: sh.Cut: Factive.Paste
         Selection.Top = Factive.Range(colonnes(n) & m).Top
         Selection.Left = Factive.Range(colonnes(n) & m).Left
       End If
       If c.Column = 15 Then
         Set sh = FGroupSemaine.Shapes("Oval 93")
         sh.Duplicate: sh.Cut: Factive.Paste
         Selection.Top = Factive.Range(colonnes(n) & m).Top
         Selection.Left = Factive.Range(colonnes(n) & m).Left + Factive.Range(colonnes(n) & m).Width - Selection.Width
       End If
       Set c = FGroupSemaine.Cells.FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
      End If
    End If
   End If
  Next m
Next n
Factive.Range("A1").Select
End Sub
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
236
Réponses
7
Affichages
163
Réponses
5
Affichages
477
Retour