Copier/coller plusieurs fois ne fonctionne plus

A voir également:Copier/coller plusieurs fois ne fonctionne plusMacro: Copier Coller X fois, X étant un nombre dans une cellule ✓ - Forum - VB / VBA Copier/coller autant de fois qu'une celulle l'indique ✓ - Forum - Excel Excel copier coller une sélection de cellules un x nombre de fois ✓ - Forum - VB / VBA Ecriture special copier coller - Conseils pratiques - Blogs Copier coller - Conseils pratiques - CommentÇaMarche

Bonjour,

depuis quelques temps, je ne peux plus utiliser le copier/coller à plusieurs reprises. En effet, lorsque je sélectionne une case, il ne met possible que de la coller une seule fois. Puis je dois une nouvelle fois la sélectionner et opérer un copier/coller.

J'ai déjà vérifié mes options avancées, la case "copier, couper coller" est bien cochée.

Autre fait qui peut être déterminant, j'ai codé des macros en worksheet change sur n'importe quelle cellule de la feuille. Plus précisément, si une case (l, c) est modifiée et que le contenu est égale à PEIN ; alors la case (l, c+1) prendra la couleur rouge brique.

Est-ce que cela peut expliquer pourquoi mon copier/coller ne fonctionne pas ? Si oui, comment puis-je y remédier afin de garder mon worksheet change et le copier/coller x fois?

Merci pour votre aide.

Forum

A voir également:Copier/coller plusieurs fois ne fonctionne plusMacro: Copier Coller X fois, X étant un nombre dans une cellule ✓ - Forum - VB / VBA Copier/coller autant de fois qu'une celulle l'indique ✓ - Forum - Excel Excel copier coller une sélection de cellules un x nombre de fois ✓ - Forum - VB / VBA Ecriture special copier coller - Conseils pratiques - Blogs Copier coller - Conseils pratiques - CommentÇaMarche

Web: www.shapebootstrap.net

2 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

bonjour, je pense déterminant de montrer le code de tes macros.

Reply
réponses:
  • auteur

    Effectivement, voici le code worksheet change

      Private Sub worksheet_change(ByVal target As Range)  Dim wshHor As Worksheet Dim wshPCDF As Worksheet Dim wshVert As Worksheet Dim rngFindSeq As Range Dim strSeq As String Dim intNbSeq As Integer Dim rngCellSeq As Range Dim rngSeqHor As Range Dim intLigne As Integer Dim intColumn As Integer Dim I As Integer  'Permet d'optimiser la vitesse du code '________________________________________________________  Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.DisplayAlerts = False  On Error GoTo Erreurs  'Déclaration des feuilles '_________________________________  Set wshVert = Worksheets("SeqVert") Set wshHor = Worksheets("SeqHor") Set wshPCDF = Worksheets("PCDF Séq.")    'Déclaration des variables '_________________________________  intNbSeq = wshVert.Range("bytNbSeq").Value  If target.Value <> "" Then  For I = 0 To intNbSeq - 1      If target.Value = wshVert.Cells(5 + I, 3).Value Then          intLigne = target.Row         intColumn = target.Column                  'Définition des noms de séquence + recherche de la séquence dans SeqHor                  strSeq = target.Value          'Déclaration Range de recherche                  Set rngFindSeq = wshHor.Range("A1", "A65356")          'Recherche de la séquence                  Set rngCellSeq = rngFindSeq.Find(what:=strSeq, LookAt:=xlWhole, MatchCase:=False)         Set rngSeqHor = rngCellSeq.CurrentRegion           rngSeqHor.Offset(2, 0).Resize(rngSeqHor.Rows.Count - 2, rngSeqHor.Columns.Count).Copy         wshPCDF.Cells(intLigne, intColumn + 1).PasteSpecial      End If  Next I  End If   'Réinitialise Excel '________________________________________________________  Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.DisplayAlerts = True  Exit Sub  '********************************************************                     'ERROR HANDLING '******************************************************** Erreurs:  If Err <> 0 Then  Application.EnableEvents = True Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.DisplayAlerts = True End if  End Sub  

  • auteur

    merci d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

  • auteur

    il me semble que l'instruction

    .copy
    va utiliser le presse-papier, donc entrer en conflit avec le copier/coller manuel.

  • auteur

    Je viens de faire le test, sur une feuille ayant également un code worksheet change dans lequel il n'y a pas d'instructions

    .copy
    ; le constat reste le même. Impossible de copier coller plus d'une fois.

    Voici le code en question :
      Option Explicit Option Compare Text  Private Sub worksheet_change(ByVal target As Range)   Dim wshVert As Worksheet Dim intLigne As Integer Dim intColumn As Integer 'Dim wsh As Worksheet  'Permet d'optimiser la vitesse du code '________________________________________________________  Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.DisplayAlerts = False  Set wshVert = Worksheets("SeqVert")    'Code '-------------------------------------------------------------- On Error GoTo Erreurs  Select Case target.Value              Case "SS"         intLigne = target.Row         intColumn = target.Column         Cells(intLigne, intColumn + 1).Interior.Color = RGB(0, 255, 0)          Case "SER"         intLigne = target.Row         intColumn = target.Column         Cells(intLigne, intColumn + 1).Interior.Color = RGB(217, 225, 242)              Case "PEIN"         intLigne = target.Row         intColumn = target.Column         Cells(intLigne, intColumn + 1).Interior.Color = RGB(192, 0, 0)       End Select  'Réinitialise Excel '________________________________________________________  Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.DisplayAlerts = True  Exit Sub  '********************************************************                     'ERROR HANDLING '******************************************************** Erreurs:     If Err <> 0 Then Application.EnableEvents = True  End Sub 

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,

Il me semble bien qu'il te faut fermer le copier/coller entre chaque itération ...


rngSeqHor.Offset(2, 0).Resize(rngSeqHor.Rows.Count - 2, rngSeqHor.Columns.Count).Copy
wshPCDF.Cells(intLigne, intColumn + 1).PasteSpecial
Application.CutCopyMode = False ' Cette ligne doit être présente dans le cycle


K

Reply
réponses:
  • auteur

    Je te renvoie à ma dernière réponse à yg_be.
    Il me semble que c'est le worksheet change et non le copy qui empêche le copier/coller x fois.

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed