Hello la communauté.
Toujours dans l'aide pour un ami qui fait des Quizz.
Je souhaite faire l'export (Bouton export choix) des données de la feuille "Base" a "Choix", si il y a des numéros (1 a 7) dans la colonne "O", avec un test du nombre de questions par numéro (Il sera entrée en dure dans une variable).
Comme je l'ai fait pour une autre partie de cette appli :
'On Renseigne le Nombre de choix par thèmes
NbChoixTheme1 = 10
NbChoixTheme2 = 10
NbChoixTheme3 = 10
NbChoixTheme4 = 10
NbChoixTheme5 = 10
NbChoixTheme6 = 15
'NbChoixTheme7 = 0
'NbChoixTheme8 = 0
Dans le module : Mdl_ExportChoix
	
	
	
	
	
		
Le soucis premier est le temps d'exécution (Environ 30 secondes) et a la base la feuille "Base" a Mini 10300 Lignes.
Y'a t'il moyen d'optimiser cela?
Et je souhaiterai que les formules des plages en oranges (Qui ne bougeront jamais), c'est figé comme cela, s'exportent aussi, car la je me retrouve avec des "ref" perdues?
Je sais qu'il y'a des traitements lourdingue avec la feuille "Base", mais je ne sais pas faire autrement.
Sur ces deux procédures dans :
	
	
	
	
	
		
Y'a t'il moyen d'optimiser cela?
Je vous remercie par avance pour toute l'aide apportée.
Bonne soirée.
G'Claire
	
		
			
		
		
	
				
			Toujours dans l'aide pour un ami qui fait des Quizz.
Je souhaite faire l'export (Bouton export choix) des données de la feuille "Base" a "Choix", si il y a des numéros (1 a 7) dans la colonne "O", avec un test du nombre de questions par numéro (Il sera entrée en dure dans une variable).
Comme je l'ai fait pour une autre partie de cette appli :
'On Renseigne le Nombre de choix par thèmes
NbChoixTheme1 = 10
NbChoixTheme2 = 10
NbChoixTheme3 = 10
NbChoixTheme4 = 10
NbChoixTheme5 = 10
NbChoixTheme6 = 15
'NbChoixTheme7 = 0
'NbChoixTheme8 = 0
Dans le module : Mdl_ExportChoix
		VB:
	
	
	Sub ExportChoix()
  
Dim wsBase As Worksheet
Dim wsChoix As Worksheet
Dim lastRowBase As Long, lastRowChoix As Long, i As Long, j As Long
' Spécifier les feuilles de calcul
Set wsBase = ThisWorkbook.Sheets("Base")
Set wsChoix = ThisWorkbook.Sheets("Choix")
' Trouver la dernière ligne dans la colonne O de la feuille "Base"
lastRowBase = wsBase.Cells(wsBase.Rows.count, "O").End(xlUp).Row
' Supprimer les lignes de A5 à la dernière ligne dans les colonnes A à AB
wsChoix.Range("A5:AB" & lastRowBase).Delete
' Réinitialiser le compteur de lignes pour la feuille "Choix"
lastRowChoix = 5
' Parcourir la colonne "O" à partir de la ligne 5 jusqu'à la dernière ligne de la feuille "Base"
For i = 5 To lastRowBase
' Vérifier si la valeur dans la colonne "O" est égale à 0, 1, 2, 3, 4, 5 ou 6
    If wsBase.Cells(i, "O").Value >= "1" And wsBase.Cells(i, "O").Value <= "7" Then
        ' Copier la plage de cellules de A:O dans la feuille "Base" vers la feuille "Choix"
        wsBase.Range("A" & i & ":O" & i).Copy Destination:=wsChoix.Range("A" & lastRowChoix)
        lastRowChoix = lastRowChoix + 1 ' Incrémenter le compteur de lignes pour la feuille "Choix"
    End If
Next i
' Si aucune ligne n'est copiée, afficher un message
If lastRowChoix = 5 Then
    MsgBox "Aucun choix n'a été effectué.", vbInformation
Else
    MsgBox "Export de " & (lastRowChoix - 5) & " choix effectué.", vbInformation
End If
AppliquerFormule_Choix
End SubLe soucis premier est le temps d'exécution (Environ 30 secondes) et a la base la feuille "Base" a Mini 10300 Lignes.
Y'a t'il moyen d'optimiser cela?
Et je souhaiterai que les formules des plages en oranges (Qui ne bougeront jamais), c'est figé comme cela, s'exportent aussi, car la je me retrouve avec des "ref" perdues?
Je sais qu'il y'a des traitements lourdingue avec la feuille "Base", mais je ne sais pas faire autrement.
Sur ces deux procédures dans :
		Code:
	
	
	Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    AppliquerCouleur
  
    ColoriserSelonK_Base
End SubY'a t'il moyen d'optimiser cela?
Je vous remercie par avance pour toute l'aide apportée.
Bonne soirée.
G'Claire
 
	 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		