Longueur logiciel visual Basics
CharlotteGu
-
jordane45 Messages postés 40050 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 40050 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai quelques petites connaissances en VBA et voulais l'appliquer de manière très simple, pour m'aider à quelques manipulations rébarbatives relatives à mon travail.
J'ai de nombreuses feuilles au sein d'un classeur EXCEL que je voulais regrouper en une seule. Le code fonctionne mais si je ne lance pas "pas-à-pas"" via F8, le logiciel bug tellement il y a d'onglets. Comment puis-je faire ? Cela vient-il de mon code?
Le voici :
J'ai quelques petites connaissances en VBA et voulais l'appliquer de manière très simple, pour m'aider à quelques manipulations rébarbatives relatives à mon travail.
J'ai de nombreuses feuilles au sein d'un classeur EXCEL que je voulais regrouper en une seule. Le code fonctionne mais si je ne lance pas "pas-à-pas"" via F8, le logiciel bug tellement il y a d'onglets. Comment puis-je faire ? Cela vient-il de mon code?
Le voici :
Sub collage()
Dim feuille As Worksheet
Dim a As Long
Set feuille = Sheets(1)
feuille.Activate
feuille.Name = "Ecritures"
For i = 1 To Worksheets.Count
a = Range("A1048576").End(xlUp).Row
If Sheets(i).Name <> "Ecritures" Then
Sheets(i).Activate
Sheets(i).Range("B9:Q45").Copy Destination:=feuille.Rows(a)
feuille.Activate
End If
Next
End Sub
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICIMerci d'y penser dans tes prochains messages.Jordane45 |
A voir également:
- Longueur logiciel visual Basics
- Logiciel - Guide
- Money logiciel - Télécharger - Comptabilité & Facturation
- Ce logiciel gratuit répare automatiquement votre PC quand Windows a des problèmes - Guide
- Visual basic - Télécharger - Langages
- Logiciel de sauvegarde gratuit - Guide
1 réponse
Bonjour,
Pour gagner du temps .. tu peux déjà désactiver l'affichage au debut de ton code
Puis le réaciver à la fin
Il faudrait aussi savoir si tu veux récupérer uniquement les valeurs de tes cellules ... ou si tu veux aussi la mise en forme.
Si ce ne sont QUE les valeurs qui t'interessent ... le COPIER/COLLER est à proscrire... (y compris les ACTIVATE sur les feuilles )
A la place tu peux utiliser le .VALUE de l'objet RANGE...
par exemple :
NB : Je pense qu'il y a aussi un petit souci sur la ligne
A changer par :
Pour gagner du temps .. tu peux déjà désactiver l'affichage au debut de ton code
Application.DisplayAlerts = False
Puis le réaciver à la fin
Application.DisplayAlerts = True
Il faudrait aussi savoir si tu veux récupérer uniquement les valeurs de tes cellules ... ou si tu veux aussi la mise en forme.
Si ce ne sont QUE les valeurs qui t'interessent ... le COPIER/COLLER est à proscrire... (y compris les ACTIVATE sur les feuilles )
A la place tu peux utiliser le .VALUE de l'objet RANGE...
par exemple :
range("A1").value = range("B1").value // met la valeur de B1 dans A1 )
NB : Je pense qu'il y a aussi un petit souci sur la ligne
a = Range("A1048576").End(xlUp).Row
A changer par :
a = feuille.Range("A1048576").End(xlUp).Row