Microsoft 365 VBA

blancolie

XLDnaute Impliqué
Bonjour le forum,

j'aimerais comprendre certaines expressions trouver ds le codage VBA.

tablo(i, 4)) : le i veut dire quoi et tablo également ?
For i ?

merci de votre aide
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Blancolie, Kiki,
VB:
Sub Blancolie()
Dim tablo()
tablo = Range("A1:C4")
For i = 1 To 4
    tablo(i, 1) = tablo(i, 1) + 1
Next i
End Sub

tablo est généralement le nom donné à un tableau ( on aurait l'appeler n'importe comment )
Ce tableau est aussi appelé array.
Donc là je mets le contenu de la plage A1:C4 dans ce tableau, donc un tableau de 3 colonnes de 4 lignes.
Pour accéder aux valeurs, on doit faire tablo(N°ligne,N°colonne)
donc tablo(i,1) donne la valeur du tableau à la ligne i et la colonne 1.
 

JBARBE

XLDnaute Barbatruc
Bonsoir à tous, blancolie, sylvanu, kiki29,
La ligne i dans l'exemple de sylvanu :
For i = 1 To 4
représente une boucle de la ligne 1 à la ligne 4 !
Mais je te conseille de regarder le post # 2 de kiki29 dont les liens donnent les explications nécessaire !
Bonne nuit !
 

JBARBE

XLDnaute Barbatruc
j'ai regardé ce que me propose kiki29, c'est intéressant mais je ne sais pas si cela répond à mes questions.

For i = 1 To 4 ou tablo(i, 1), le i c'est nous qui l'avons inventé ? on on aurait pu mettre N à la place ?
Bonsoir à tous,
Bien sûr tu peux mettre n'importe quoi !!!
Élémentaire mon cher Watson !
Mais essaie de comprendre les liens de kiki post #2
Bonne nuit !
 

JBARBE

XLDnaute Barbatruc
Re,
Je te mets un exemple de macro concernant le coloriage que j'ai mis sur ce forum dernièrement !
Cette macro est très simple et commentée !
Si tu as des questions, fait moi en part !
VB:
Option Explicit

Sub couleurs()
Dim i As Long, j As Long ' déclaration des variables
Application.ScreenUpdating = False ' écran figé
Range("CM8:CO12") = "" ' Cellules supprimées
Range("CM8:CO12").Interior.ColorIndex = xlNone ' Cellules supprimées couleurs
For i = 8 To 12 ' boucle i pour les lignes de 8 à 12
 For j = 2 To 90 ' boucle j pour les colonnes de 2 à 90
  If Cells(i, j).Interior.ColorIndex = 43 Then ' si la cellule (ligne / colonne ) est verte alors
   Cells(i, 91) = Cells(i, 91) + 1 ' ajout du nombre en cellule ( ligne / colonne 91 )+1
   Cells(i, 91).Interior.ColorIndex = 43 ' coloriage de la cellule concernée en vert
  ElseIf Cells(i, j).Interior.ColorIndex = 46 Then ' si la cellule (ligne / colonne ) est orange alors
   Cells(i, 92) = Cells(i, 92) + 1 ' ajout du nombre en cellule ( ligne / colonne 92 )+1
   Cells(i, 92).Interior.ColorIndex = 46 ' coloriage de la cellule concernée en orange
   ElseIf Cells(i, j).Interior.ColorIndex = 47 Then ' si la cellule (ligne / colonne ) est violet alors
   Cells(i, 93) = Cells(i, 93) + 2 ' ajout du nombre en cellule ( ligne / colonne 93 )+2
   Cells(i, 93).Interior.ColorIndex = 47 ' coloriage de la cellule concernée en violet
  End If ' fin si
 Next j ' fin boucle j
Next i ' fin boucle i
Application.ScreenUpdating = True ' fin écran figé
End Sub

Bonne journée !
 

Pièces jointes

  • somme sur couleurs-1.xlsm
    25 KB · Affichages: 8

blancolie

XLDnaute Impliqué
Merci pour ton exemple, ce que j'ai pu lire jusqu'ici avec vous 3 ou ailleurs, les boucles etc etc , j'arrive à comprendre. La ou je me pose des questions c'est la ou ce n'est pas réellement expliqué. Dans ton exemple qui est très bien commenté, c'est dim i as long, j as long , c'est le i et le J par exemple. J'ai cru comprendre que nous sommes pas obligé de mettre dim. le I si je comprends correspond aux lignes et j aux colonnes ? mais I et j font partie du VBA ou c'est toi qui les nommes comme ça ?

par exemple : Cells(i, 91) = Cells(i, 91) + 1 a partir de la 91 lignes, on rajoute 1 ligne. Au point de départ du déclare 91 lignes
 

JBARBE

XLDnaute Barbatruc
Re,
Je te le répète i & j peuvent se nommer autrement par exemple A ou N ou B etc......
Code:
Option Explicit
oblige à déclarer des variables ( dim i as long, j as long )
Bon tu as compris il me semble les lignes et les colonnes ! sauf :
Pour :
VB:
Cells(i, 91) = Cells(i, 91) + 1
91 n'est pas la ligne mais la colonne !
Ainsi la cellule Cells(i,91) contiendra un nombre augmenté de 1 ( +1 )
@+
 

Discussions similaires

Réponses
4
Affichages
165

Statistiques des forums

Discussions
311 720
Messages
2 081 902
Membres
101 834
dernier inscrit
Jeremy06510