Code bugué, histoire de copier/coller

divad

XLDnaute Junior
Bonjour,

je me creuse la tête sur un code qui ne fonctionne pas, et je ne comprends pas pourquoi.
La solution est, j'imagine, simple puisque je suis débutant.

Pour information, je copie des cellules depuis l'onglet "Añadir TM". Par la suite, je me rends dans l'onglet "RRHH" pour insérer une ligne à un tableau, puis coller les informations copiées du premier onglet.
Jusque là, tout va bien.
Mais par la suite, je veux copier une cellule, toujours dans l'onglet RRHH, et la copier plusieurs fois, dans cette même feuille.
Et c'est là que j'ai une erreur, de temps d'execution dépassé.
C'est la premiere des 4 dernieres lignes qui m'est surligné.
A noter que ces 4 lignes viennent d'un copier coller de l'enregistreur de macro.

Code:
 'Copia de los datos de la nueva persona
    Sheets("Añadir TM").Select
    Range("e6:g6").Select
    Selection.Copy
    
    'Hoja activa : RRHH
    Sheets("RRHH").Select
    
    'Selección de la primera linea vacia
       celrrhh = 5
        While Not Sheets("RRHH").Range("a" & celrrhh & "").Value = ""
            celrrhh = celrrhh + 1
        Wend
          
    'Insersión de una linea y pega de los datos
    ActiveSheet.Rows(celrrhh & ":" & celrrhh).Select
    Selection.Insert Shift:=xlDown
      
    'copiar el AT en las otras columnas
    [COLOR="Red"][B]Range("C83").Select[/B][/COLOR]    
    Selection.Copy
    Range("D88:J88").Select
    ActiveSheet.Paste
    
End Sub

Pensez-vous pouvoir m'aider?

Merci d'avance!

D
 
Dernière édition:

divad

XLDnaute Junior
Re : Code bugué, histoire de copier/coller

Merci pour ta réponse.

J'insère une ligne à la suite d'un premier tableau, pas tout en bas du dernier tableau de ma feuille. Donc ton code n'est pas adapté à mes besoins pour cela.

Mais je pense que seules mes 4 dernières lignes posent problème, je ne crois pas qu'il faille toucher au reste (?)

merci encore
 

camarchepas

XLDnaute Barbatruc
Re : Code bugué, histoire de copier/coller

A mon avis, un retour à la ligne est passé à l'as :

'copiar el AT en las otras columnas
Range("C83").Select
Selection.Copy 'Et oui cela doit aller mieux
Range("D88:J88").Select
ActiveSheet.Paste
 

divad

XLDnaute Junior
Re : Code bugué, histoire de copier/coller

Oui ça ne me surprend pas qu'il ne soit pas optimisé :)
Je tente de faire un fichier excel pour faciliter la chose.

Je vous copie de nouveau lo code, un peu mieux documenté:

Code:
    'Copie des donnees depuis l'onglet Añadir TM
    Sheets("Añadir TM").Select
    Range("e6:g6").Select
    Selection.Copy
    
    'Hoja activa : RRHH
    Sheets("RRHH").Select
    
    'Selection de la premiere ligne vide de mon tableau
    celrrhh = 5
        While Not Sheets("RRHH").Range("a" & celrrhh & "").Value = ""
            celrrhh = celrrhh + 1
        Wend
          
    'Insertion ligne et copie des donnees de Añadir TM
    ActiveSheet.Rows(celrrhh & ":" & celrrhh).Select
    Selection.Insert Shift:=xlDown


    'Copie de C83 partout entre D88 et J88 (erreur dans la première ligne)
   Range("C83").Select
   Selection.Copy
   Range("D88:J88").Select
   ActiveSheet.Paste

Le dernier bloc de 4 lignes n'a finalement rien a voir avec ce qui se passe avant.

(
Ha, et je me rend compte que mes lignes de code
Code:
    'Insertion ligne et copie des donnees de Añadir TM
    ActiveSheet.Rows(celrrhh & ":" & celrrhh).Select
    Selection.Insert Shift:=xlDown
ne m'insèrent que 3 cellules et pas une ligne entière...

)

Merci!

D
 

divad

XLDnaute Junior
Re : Code bugué, histoire de copier/coller

Voilà, j'ai préparé un fichier Excel qui vous montre exactement la même chose que mon fichier original.

La première partie du code fonctionne à peu près, mais ça bugue surtout à la fin.

Merci :)
 

Pièces jointes

  • exempleD.xls
    33 KB · Affichages: 64

divad

XLDnaute Junior
Re : Code bugué, histoire de copier/coller

Héhé :) J'espére que le fichier t'aidera à mieux comprendre ;)
C'est juste que j'ai d'autres données situées en dessous de ce premier tableau ;)
Edit:
ben non, je veux juste copier donnees1, donnees2 et donnees3, je veux les insérer au premier tableau en fait.
Ou alors j'ai pas compris la question :)

Edit2: Ha ouais nan, j'avais pas compris la question :D
Je veux juste reprendre donnees3 et la copier dans les cellules adjacantes en fait, 5 ou 10 fois par exemple
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Code bugué, histoire de copier/coller

Ca tourne, c'est un mobile.
Bon , j'ai déjà transféré le code dans un module, c'est plus terre à terre.
Et là plus d'erreur.
Mais, c'est vrai que c'est obscure comme fonctionnement.
Mettre ses idées en place avant de commencer une application, un minimum.
Sinon, l'on passe du temps à jouer aux devinettes.
 

Pièces jointes

  • exempleD-1B.xls
    32.5 KB · Affichages: 56

divad

XLDnaute Junior
Re : Code bugué, histoire de copier/coller

il y a une imprécision dans mon code.
C'est que c'est la cellule 18 qui doit etre copiée, pas la 83... désolé.
Mais le fonctionnement reste le meme.

Je regarde ton code, merci

Edit: une histoire de module? Je ne sais pas ce qu'est un module en fait... mais en effet ça fonctionne :/
 

pierrejean

XLDnaute Barbatruc
Re : Code bugué, histoire de copier/coller

bonjour a tous

A tester:
Code:
Sub copie()
x = Sheets("RRHH").Range("A1").End(xlDown).Row + 1
Sheets("RRHH").Rows(x).Insert
Range("E6:G6").Copy Destination:=Sheets("RRHH").Range("A" & x)
Sheets("RRHH").Range("D88:J88") = Range("C83")
End Sub
 

Dull

XLDnaute Barbatruc
Re : Code bugué, histoire de copier/coller

Salut divad, le Fil (z'êtesnombreuxavouloiraiderdivad):)

j'ai bien peur de dire une bêtise mais si tu remplace

Code:
Range("C83").Select
   Selection.Copy
   Range("D88:J88").Select
   ActiveSheet.Paste
par ceci

Code:
Range("C83").Copy Destination:=Range("D88:J88")
Chez moi comme cela ça fonctionne

EDITION: Salut Jean Marcel:), PierreJean :)

Bonne Journée
 
Dernière édition:

divad

XLDnaute Junior
Re : Code bugué, histoire de copier/coller

Merci de vos réponses.

Les deux codes me copient mes données dans soucis.
Juste que dans ton code, Jean-Marcel, il n'y a pas de nouvelle ligne ajoutée. Le code de pierrejean me convient mieux car je dois ajouter ces données au premier tableau.

La suite, elle est simple.
Si les données sont collées sur la ligne 20, par exemple. Je veux simplement que la cellule C20 soit répliquée en D20, E20... jusqu'à L20.
C'était surtout cette partie qui ne fonctionnait pas chez moi, en faisant un copier/coller de l'enregisteur de macros.

Merci, et désolé de ne pas avoir été clair au départ ;)

D
 

divad

XLDnaute Junior
Re : Code bugué, histoire de copier/coller

Merci dull, et merci à tous car en effet vous êtes nombreux à m'aider!

Pour ma part, ça ne plante plus mais ça ne me copie rien non plus :p

Ce n'est pas une histoire de module, comme expliqué plus haut? Je ne connais pas la différence entre placer un code dans un module et placer un code directement dans la feuille.
 

camarchepas

XLDnaute Barbatruc
Re : Code bugué, histoire de copier/coller

Je constate une anomalie par rapport a ton commentaire
Ici tu selectionnes l'onglet RRHH
Sheets("RRHH").Select

'Selection de la premiere ligne vide de mon tableau
CelRRHH = 5
While Not Sheets("RRHH").Range("a" & CelRRHH & "").Value = ""
CelRRHH = CelRRHH + 1
Wend

'Insertion ligne et copie des donnees de Añadir TM
ActiveSheet.Rows(CelRRHH & ":" & CelRRHH).Select
Selection.Insert Shift:=xlDown

Ici, il manque: worksheets("Añadir TM").select
Par contre il n'y a que la ligne 6 à copier dans cet onglet?
Range("C83").Select deviendrait Range("E6").Select
Selection.Copy
Range("D88:J88").Select
ActiveSheet.Paste

Toujours de la devinette.
Sinon décris nous avec des mots simples ou avec une feuille avant et une feuille après , ce que tu veux faire.
 

Discussions similaires

Réponses
2
Affichages
1 K

Statistiques des forums

Discussions
312 465
Messages
2 088 652
Membres
103 906
dernier inscrit
mefodden