• Initiateur de la discussion Initiateur de la discussion SLIJACK
  • Date de début Date de début

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 !

S

SLIJACK

Guest
Bonjour le forum!!
petit problème sur code VBA, qui fonctionnait bien jusqu'à ce que je déplace les onglet dans un nouveau classeur pour faire des essaie et puis je les ai remis dans leurs classeur d'origine.
J'espère ne pas être trop brouillon dans mon explication, je joint le fichier concerné.
le code:
Sub EnregDevis()
Range("ligne").Copy
With Sheets("BibPerso")
.Range("A65536").End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
Range("A15") = Range("A15") + 1 'incrémente le N° d'ordre
Range("b15") = Range("b15") + 1 'incrémente le N° ouvrage
Range("b19:d19").ClearContents
Range("B22:F49").ClearContents
Range("H22:H49").ClearContents
End Sub

c'est Range("ligne").copy qui cause problème enfin je crois.
merci d'avance pour l'aide
 

Pièces jointes

Re : Problème code VBA

Bonsoir,

Après ouverture du fichier et vérification des noms, sans doute Jean-Marcel, que je salue🙂, a-t-il raison. Les noms sont remplis d'erreurs "#REF". Lors du déplacement d'un fichier à l'autre les références ont sûrement étées perdues....

A+
 
Re : Problème code VBA

Bonjour SLIJACK.

J’ai regardé votre code, en faite la variable ligne n’est pas définit ce qui génère un bug dans le code.

Ligne est en faite la ligne A15 :F15 est il faut définir cette plage en plage nommé.

J’ai remplacé ligne par :

Range(“A15 :F15“).copy ont aurait aussi pu écrire Range(cells(15,1) ,cells(15,6)).copy

A présent votre macro fonctionne

Le code :

Sub EnregDevis()
'Range("ligne").Copy ' Cellule A15:F15
Range("A15:F15").Copy ' Il faut défifinir ligne en plage nomée et définir la variable
With Sheets("BibPerso")
.Range("A65536").End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
Range("A15") = Range("A15") + 1 'incrémente le N° d'ordre
Range("b15") = Range("b15") + 1 'incrémente le N° ouvrage
Range("b19:d19").ClearContents
Range("B22:F49").ClearContents
Range("H22:H49").ClearContents
End Sub

Au plaisir de vous lire et vous répondre.

Laurent
 

Pièces jointes

Dernière édition:
Re : Problème code VBA

bonsoir à tous
merci laurent950 cela marche nickel, je suis super contant.
milles excuse je remercie également Jean-Marcel et Hasco de s’être penché sur mon problème
 
Dernière modification par un modérateur:
- 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.

Discussions similaires

Réponses
3
Affichages
645
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
1 K
Réponses
2
Affichages
507
Réponses
3
Affichages
882
Retour