Classeurs variant: Opérations sur des plages de cellules

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

napo124

XLDnaute Junior
Bonjour à tous,

J'aimerais savoir comment effectuer des opérations (somme ou autres) sur des plages de cellules de tableaux variant ? Voire juste renvoyer la plage de cellules vers un autre tableau?

Exemple:
Je suis habitué à utiliser une boucle do pour renvoyer une ligne d'un tableau TABL1 vers TABL2.
Ou j'utilise une boucle Do pour effectuer sur chaque cellule une multiplication par 2.

Pouvez vous m'aider en m'indiquant une manière plus rapide d’effectuer ces opérations?

Merci!
 
Re : Classeurs variant: Opérations sur des plages de cellules

Bonjour.
En chargeant d'un seul coup la Value de toute la plage source dans un tableau de Variant, la corrigeant, puis le déchargeant d'un seul coup dans la plage cible.
Cordialement
 
Re : Classeurs variant: Opérations sur des plages de cellules

Dans ce style:
VB:
Sub test()
Dim TABL() As Variant, L As Long, C As Long
TABL = ThisWorkbook.Worksheets(1).Cells(1, 1).CurrentRegion.Value
For L = 1 To UBound(TABL, 1)
   For C = 1 To UBound(TABL, 2)
      TABL(L, C) = TABL(L, C) * 2
      Next C
   Next L
ThisWorkbook.Worksheets(2).Cells(1, 1).Resize(UBound(TABL, 1), UBound(TABL, 2)).Value = TABL
End Sub
À +
 
Re : Classeurs variant: Opérations sur des plages de cellules

Bonjour !

Merci de votre réponse, mais cela revient à utiliser une boucle (do ou for) pour appliquer une opération cellule par cellule.

Mon objectif est de l'appliquer sur une plage de cellule.Exemple:
Ligne 1 de TABL = (Ligne 1 de TABL2)*2
Ou
Colonne 5 de TABL = (Colonne 4 de TABL2) * 5 + Colonne 2 de TABL

🙂
 
Re : Classeurs variant: Opérations sur des plages de cellules

Vous avez aussi le collage spécial avec opérations. Mais ça implique de copier d'abord une cellule contenant le facteur multiplicatif.
cela revient à utiliser une boucle (do ou for) pour appliquer une opération cellule par cellule.
Non. Ça ne revient pas du tout à ça, c'est beaucoup plus rapide. D'accord sur le mot boucle, mais pas sur le mot cellule.
En gros 1000 utilisations de Range pour chaque fois atteindre 1 seule cellule à la fois coute bien 900 fois plus temps qu'une seule utilisation de Range pour atteindre les 1000 cellules d'un coup via un tableau.
Quand aux opérations internes portant sur le tableau, leur coût en temps est carrément négligeable face à celui des requêtes Excel, à moins d'avoir plusieurs boucles imbriquées.
Cordialement.
 
Dernière édition:
- 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

Retour