Je ne comprens pas les bugs

  • Initiateur de la discussion Initiateur de la discussion JACMIC
  • 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 !

JACMIC

XLDnaute Nouveau
Cher tous qui savez si bien ce qui marche,
Encore une fois je viens à vous, car je pense que l'un d'entre vous connais la solution.
j'ai "monté" ce bout de code, mais j'ai un problème pour placer la feuille en avant dernière position.
Soit je la retrouve en première en ayant remplacé une autre feuille, soit elle ne se recopie pas.
ma question qu'ajouter ou retrancher à ce code.

Pourquoi le report vers la fin du code fonctionne avec la ligne de la ListBox1 et pas avec la ligne de la TextBox1

Merci beaucoup à celui ou ceux qui pourront me dépanner.

Private Sub Créer_Click()

On Error Resume Next
Application.ScreenUpdating = False

NomFeuille = ListBox1.Value 'le nom de l'onglet est dans la listeBox1
Sheets.Add
Application.Goto Reference:="Table" 'Table est la zone à copier
Selection.Copy
Sheets(1).Select
ActiveSheet.Name = NomFeuille
ActiveSheet.Paste
ActiveSheet.Cells(1, 1) = NomFeuille

Sheets("NomFeuille").Range("A1") = ListBox1.Value ' pour mettre la valeur de ListBox en A1 (ça marche)
Sheets("NomFeuille").Range("D2") = ListBox2.Value ' pour mettre la valeur de ListBox en D2 (ça marche pas)
ListBox2 = ""
Fichearticles.Hide
End Sub
 
Re : Je ne comprens pas les bugs

Bonsoir,

pour placer la feuille en avant dernière position.

Sheets.Add Before:=Worksheets(Worksheets.Count)

Pourquoi le report vers la fin du code fonctionne avec la ligne de la ListBox1 et pas avec la ligne de la TextBox1

Sheets("NomFeuille").Range("A1") = ListBox1.Value ' pour mettre la valeur de ListBox en A1 (ça marche)
Sheets("NomFeuille").Range("D2") = ListBox2.Value ' pour mettre la valeur de ListBox en D2 (ça marche pas)
ListBox2 = ""
Fichearticles.Hide
End Sub
Ou est ton textbox dans ta macro?
 
Re : Je ne comprens pas les bugs

Merci pour la réponse Skoobi,

Pour la mise en place de la feuille merci, je vais essayer.

concernant le textbox, je me suis aperçu que j'avais fait l'erreur avec listbox et je l'ai corrigé entretemps mais même avec textBox1 ça ne marche pas

aqurais-tu une idée

Merci par avance

jacmis
 
Re : Je ne comprens pas les bugs

Bonsoir le fil

Comme le dit Skoobi, sans fichier, difficile de voir ce qui cloche.

Par contre tu peux limiter les problème issus de l'ajout de feuille en la nommant juste après sa création et en évitant les "activesheet" qui peuvent se révéler hasardeux, en passant par une variable 'feuille':

Code:
Dim NewSh As Worksheet
Set NewSh = Worksheets.Add
NewSh.Name = "toto" ' ou ton text box ou list box ici
Je pense que c'est plus facile à gérer que le simple "sheets.add" puisque tu peux faire référence à la nouvelle feuille par son nom, sans ambiguïté et sans "active sheet" (de plus tu gagnes en vitesse d'exécution).

Bonne soirée
 
Re : Je ne comprens pas les bugs

re,

Skoobi l'a dit précédemment 😎

Pour l'ajouter en avant-dernier:
Set NewSh = Worksheets.Add(before:=Worksheets(Worksheets.Count))
mais si tu n'as qu'une feuille, la nouvelle se trouvera en premier, bien sûr!

Pour l'ajouter en dernier:
Set NewSh = Worksheets.Add(after:=Worksheets(Worksheets.Count))

bonne nuit
 
- 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

Discussions similaires

Réponses
4
Affichages
1 K
Retour