Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1634 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Ecrire une variable tableau sur une feuille avec colonne masquéees

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ecrire une variable tableau sur une feuille avec colonne masquéees

n°2324708
framboize1
Posté le 23-11-2018 à 14:58:30  profilanswer
 

Bonjour,  
 
Je dispose d'un tableau à 2 dimensions, constitué de ~ 60 colonnes, et d'une feuille avec ~60 colonnes. Pour faciliter la naviguation, certaines colonnes doivent être masquées.  
 
Lorsque je souhaite écrire le tableau dans ma feuille, à l'aide de la méthode Range("..." ) = Montableau
ou Cells(Row,1).resize(Lbound(montb),Ubound(montb)) = montb
 
Les colonnes masquées crééent un bug : Après chaque colonne masquée le tableau est "réécrit" à partir de sa première colonne.  
 
 
Pour pallier à ceci, pour écrire le tableau dans la feuille :  
 

  • Je stocke quelle colonnes est masquée
  • Je démasque toutes les colonnes
  • J'écris mon tableau
  • Je masque les colonnes initialement masquées.


Cela ralenti considérablement ma macro. Est-il possible d'écrire mon tableau directement, avec la même méthode que Range("..." ) = montableau, malgré les colonnes masquées ?  
 
 
 
 
Voici ce que j'ai codé temporairement pour contourner le problème :

Code :
  1. 'Stock wich column is hided or not, Hidden = True
  2.     ReDim tbvisiblecolumn(lastcolmb)
  3.     For i = 1 To lastcolmb
  4.         If Columns(i).EntireColumn.Hidden = True Then
  5.             tbvisiblecolumn(i) = True
  6.         Else
  7.             tbvisiblecolumn(i) = False
  8.         End If
  9.     Next
  10.     'Unhide all columns
  11.     On Error Resume Next
  12.         For i = 1 To lastcolmb
  13.             If tbvisiblecolumn(i) = True Then
  14.                 Columns(i).EntireColumn.Hidden = False
  15.             End If
  16.         Next
  17.     On Error GoTo 0
  18.     'Write tbwrite()in sheet mb
  19.     If CBOptions = False Or ActiveCell.Value = "" Then
  20.         If nbrow > 1 Then mb.Rows(Arow + 1).Resize(nbrow - 1).EntireRow.Insert Shift:=xlDown
  21.         Range(mb.Cells(Arow, 1), mb.Cells(Arow + nbrow - 1, lastcolmb)) = tbwrite
  22.     Else
  23.         mb.Rows(Arow + 1).Resize(nbrow).EntireRow.Insert Shift:=xlDown
  24.         mb.Cells(Arow, 1).Resize(nbrow + 1, lastcolmbt) = tbwrite
  25.     End If
  26.     'Hide columns wich where hided
  27.     For i = 1 To lastcolmb
  28.         If tbvisiblecolumn(i) = True Then
  29.             Columns(i).EntireColumn.Hidden = True
  30.         End If
  31.     Next
  32.     OptimizeCode_End


 
Merci d'avance !


Message édité par framboize1 le 23-11-2018 à 15:01:53
mood
Publicité
Posté le 23-11-2018 à 14:58:30  profilanswer
 

n°2325017
Peuwi
Posté le 29-11-2018 à 16:12:28  profilanswer
 

Si tu n'as pas désactivé le rafraîchissement de l'affichage en cours de macro, c'est peut être la solution simple.
(Application.ScreenUpdating)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Ecrire une variable tableau sur une feuille avec colonne masquéees

 

Sujets relatifs
copier coller d une feuille a une autreVBA organisation de tableau
Ecrire W avec étoilescopier coller plusieurs feuilles dans une feuille
[Résolu]Comment changer automatiquement/manuellement de feuillehta récupération de variable dans un formulaire
variable suivant une autre variabletableau de classe dans une classe
Obtenir une variable (commande for) helpOptimisation Macro remplissage feuille à partir d'autres feuilles
Plus de sujets relatifs à : Ecrire une variable tableau sur une feuille avec colonne masquéees


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR