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 !
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
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 (?)
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...
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 😀
Je veux juste reprendre donnees3 et la copier dans les cellules adjacantes en fait, 5 ou 10 fois par exemple
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.
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
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 😉
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 😛
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.
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.
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.