Erreur pendant couper-coller vba excel

heleneML Messages postés 27 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 18 mai 2011 - 18 mai 2011 à 10:37
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 18 mai 2011 à 16:33
Bonjour,
Voilà, je voudrais faire un couper-coller dans un fichier excel grâce à vba, mais j'ai une erreur ("1004", erreur définie par l'application ou par l'objet) qui apparait.
Voici mon code :
For l = 0 To 2
     Cells(ligne + l, 1).EntireRow.Select
     Selection.Cut
     Cells(ligne_mag + 5 * (j - 1) + l, 1).EntireRow.Select
     ActiveSheet.Paste
                            
     Cells(ligne + l, 1).EntireRow.Select
     Selection.Delete
 Next


Merci pour votre aide !

11 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 mai 2011 à 11:05
Bonjour,

Bien malin serait celui qui pourrait te répondre valablement sans connaître la valeur, au moment du blocage, de :
- ligne
- ligne_mag
- j

entre en mode debug, regarde ces valeurs et dis-nous donc


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
heleneML Messages postés 27 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 18 mai 2011
18 mai 2011 à 11:15
Pas faux, désolé ucfoutu !
Alors ligne = 56
ligne_mag=14 et j=2

Mais ce que j'ai oublié de dire je crois, c'est que l'erreur s'affiche dès la 1ere ligne dans la boucle (Cells(ligne + l, 1).EntireRow.Select) !
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 mai 2011 à 11:55
testé chez moi ===> AUCUNE erreur avec CES valeurs !
reste à savoir pourquoi tu en as une, toi !
- quelle est la nature de ta ligne 56 ? Est-elle protégée (et si oui comment) ? Est-elle masquée ?
- le code montré est-il bien le résultat d'un copier-coller du tien ? (pour éviter que dans ton code réel, une faute d'orthographe, sur le mot ligne, par exemple, ne vienne tout troubler)


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 mai 2011 à 12:09
et si tu nous disais maintenant avec précision, ce que tu cherches à faire par ce code ?
Ilo est à première vue fort vraisemblable qu'on pourrait le faire sans tous ces vilains Select, Paste, etc ... et qu'on n'aurait même pas besoin d'une boucle !

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
heleneML Messages postés 27 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 18 mai 2011
18 mai 2011 à 12:10
Effectivement, j'ai copié collé mon code dans mon message.
J'ai donc essayé de mon côté à copier ce code sur un nouveau fichier (ainsi que ma ligne 56 dans le classeur), et CA MARCHE... mais ça ne marche pas sur celui où je veux que ça marche !
C'est vraiment bizarre !
0
heleneML Messages postés 27 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 18 mai 2011
18 mai 2011 à 12:22
et si tu nous disais maintenant avec précision, ce que tu cherches à faire par ce code ?

Ce que je veux faire avec ce code ? Couper coller 3 lignes pour les mettre à un autre endroit de ma feuille (et supprimer les lignes vides de l'endroit d'origine de mes lignes...)
En fait, j'ai réussi à le faire tourner une fois (sans rien changer) mais j'ai réessayé 2 fois, et ça ne marche pas !
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 mai 2011 à 13:00
Je te laisse comprendre et adapter ceci :
ligne = 10
 ligne_mag = 14
 j = 2
 Dim quoi As Range
 Set quoi = Union(Rows(ligne), Rows(ligne + 1), Rows(ligne + 2))
 quoi.Copy Destination:=Rows(ligne_mag + 5 * (j - 1) + l)
 quoi.Delete


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
heleneML Messages postés 27 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 18 mai 2011
18 mai 2011 à 14:47
Euh la bonne nouvelle sur mon fichier c'est que "quoi" se supprime, mais en tout cas, les données ne sont pas collées à un quelconque endroit...
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 mai 2011 à 15:11
Désolé, mais j'ai testé chez moi.
quoi est supprimé et ce qu'ilcontenait est copié à partir de la ligne 16
Alors ?


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
heleneML Messages postés 27 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 18 mai 2011
18 mai 2011 à 15:33
Oui ça marche, mais pas sur mon fichier, je vais essayer de ne pas utiliser de couper_coller !
Merci quand même pour ton aide !
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 mai 2011 à 16:33
Oui ça marche, mais pas sur mon fichier


Ce n'est donc pas ce code, qui est à mettre en cause, mais autre chose (protection ?, code mis dans un module autre que celui de la feuille concernée ?, etc ..)
Et cela, tu es en l'état actuel des choises bien la seule à pouvoir le vérifier.
Bonne chance.



____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
Rejoignez-nous