Génération de variable sous condition
Bonjour
En vba excel, sur Excel 2010, est-il possible de générer des variables en série sous condition
Par exemple, pour une activité professionnelle, j'ai une liste avec en colonne A, le nom des personnes et en colonne B la productivité correspondante si la personne a exercé cette activité.
J'ai besoin d'inspecter chaque cellule de la colonne B pour voir si la personne a exercé cette activité, si une activité est exercée je souhaite alimenter 2 variables, l'une avec le nom de la personne et l'autre avec la productivité.
Si je tombe sur une seconde personne qui exerce cette activité, j'ai également besoin que soient stockées en variable son nom et sa productivité.
Comment faire pour générer des variables Nom1 et Prod1 puis Nom2 et Prod2 etc
Par avance merci
Bonjour
Tu devrais essayer de stocker ces variables dans une variable "tableau" comme dans l'exemple du fichier ci-joint.
Pour exemple, la variable du Nom3 et de sa productivité sont respectivement : tabloR(0,2) et tabloR(1,2)
Bye !
Merci pour ta réponse
Je pense que ça répond à mon besoin, je ne connaissais pas les tableaux
Avant d'avancer, je me suis permis de commenter ton code pour que je comprenne chaque étape, je le publie ici
gmb a écrit :Option Explicit Dim tablo, tabloR(), i, k Sub Extractions() 'déclaration du 1er tableau à 2 dimensions, source des données 'Ce tableau fait 2 colonnes A et B et va de la ligne 1 à la dernière ligne non vide de la colonne A (grâce à "Rows.Count).End(xlUp).Row)") tablo = Range("A2:B" & Range("A" & Rows.Count).End(xlUp).Row) 'on initialise k à 0 k = 0 'Boucle sur les lignes du 1er tableau de la ligne 1 du tableau jsuqu'à la dernière ligne du tableau donnée par Ubound. 'Le 1 dans Ubound choisit la 1ère dimension du tableau soit la ligne For i = 1 To UBound(tablo, 1) 'Si la ligne i de la colonne 2 du tableau est vide THEN If tablo(i, 2) <> "" Then 'détermine le nombre de colonnes du 2ème tableau sachant que la source de données du 1er tableau a 2 colonnes et X lignes, 'le second tableau aura 2 lignes et X colonnes. 'Preserve permet de conserver les valeurs pendant le redimensionnement ReDim Preserve tabloR(2, k + 1) 'attribution du contenu de la Ième ligne de la colonne 1 du 1er tableau dans la Kème colonne de la ligne 0 du 2ème tableau tabloR(0, k) = tablo(i, 1) 'attribution du contenu de la Ième ligne de la colonne 2 du 1er tableau dans la Kème colonne de la ligne 1 du 2ème tableau tabloR(1, k) = tablo(i, 2) 'Comme I va avancer de 1 automatiquement avec le For/Next, on fait avancer le K de 1 k = k + 1 End If Next i 'donne le résultat dans la cellule D2 en transposant les données du 2ème tableau, les lignes redeviennent colonnes et inversement Range("D2").Resize(UBound(tabloR, 2), 2) = Application.Transpose(tabloR) End Sub