VBA: calcul avec nombre de lignes variable

Résolu
NyectoD Messages postés 23 Statut Membre -  
NyectoD Messages postés 23 Statut Membre -
Bonjour,

Je suis sur un document qui va me chercher un nombre variable d'informations en fonction de ce que l'utilisateur entre comme données au début.

L'extraction des données est faite mais je souhaite dorénavant effectuer des calculs et insertion de tableau ou autres.

Mes données sont sur 8 colonnes et sur un nombre de lignes variable, je cherche donc à définir le nombre de lignes afin d'effectuer un calcul sur la 9ème colonne,

Le code que j'ai

DernLigne = ActiveSheet.Rows.Count

x = 75
y = 65
z = 67

If x < 91 Then
For i = 2 To DernLigne
Range(Chr(x), i).FormulaLocal = "=" & Chr(x - 8) & "," & i & "-" & Chr(x - 6) & "," & i & "-" & Chr(x - 3) & "," & i

Next
x = x + 9
Else
If z < 91 Then
For i = 2 To DernLigne
Range(Chr(y) & Chr(z), i) = Range(Chr(y) & Chr(z - 8), i) - Range(Chr(y) & Chr(z - 6), i) - Range(Chr(y) & Chr(z - 3), i)
Next
z = z + 9
Else
y = y + 1
z = z - 26
For i = 2 To DernLigne
Range(Chr(y) & Chr(z), i) = Range(Chr(y) & Chr(z - 8), i) - Range(Chr(y) & Chr(z - 6), i) - Range(Chr(y) & Chr(z - 3), i)
Next
End If
End If

J'ai essayé plusieurs méthodes de calcul pour DernLigne, aucune ne fonctionne pour le moment.

Si quelqu'un a une idée.

Merci d'avance




Merci !
NyectoD
A voir également:

2 réponses

Weapon EDGE
 
Bonjour,

Pour définir le nombre de ligne d'un Tableau Il faut que tu choisisses la colonne ou t'es sur que la dernière cellule est représentatif de la longueur de ton tabelau.

Supposons que ce soit la colonne A

Tu tappes alors ce code.

Nb_Ligne = cells(rows.count,1).end(xlup).row

La variable Nb_Ligne renverra la position de la dernière cellule de la colonne A qui est pleine.

Manuellement, ça en revient à :
- Cliquer sur la dernière ligne de la feuille de la colonne A
A66635 pour les version Excel 2007 et inférieur ou A1048576 pour les version 2010 et suppérieur.
- Faire CTRL + Flèche du haut
- Et enfin aller récupéré le n° de la ligne de la cellule sélectionné.
3
NyectoD Messages postés 23 Statut Membre 1
 
Merci de ta réponse rapide.

J'avais déjà essayé quelque chose du genre mais la valeur que j'ai avec ton instruction est 1 ce qui pour une instruction de type For i = 2 to Valeur est gênant.

0
Weapon EDGE
 
Tu l'as testé sur ton tableau ?

Ci joint un fichier exmple ça fonctionne parfaitement :

http://cjoint.com/?DDolWr5ZHPz
0
NyectoD Messages postés 23 Statut Membre 1
 
Je l'ai testé, il me renvoie 1.

Après, la macro que j'exécute créé un nouveau document et les calculs que j'effectue se font sur l'autre document, normalement, en spécifiant que je me trouve sur l'autre document et sur la bonne feuille de calcul, cela fonctionne mais là non.

Je continue à chercher, car ta formule est correcte, cela vient de mes paramètres particuliers.
0
Weapon EDGE
 
Là il me faut le fichier original pour que je comprenne.Enlèves les données confidentielle et joint le lien généré sur le site cijoint.fr
0
NyectoD Messages postés 23 Statut Membre 1
 
Voilà le fichier,

Je travaille sur ce qui est tout en bas, le reste n'est certes pas très joli mais fonctionne.
(Je sais que je dois créer une procédure pour simplifier la chose mais ce n'est pas une priorité)

https://www.cjoint.com/?3DooRngWgKP

Merci d'avance
0
Weapon EDGE
 
Le problème ne viens pas de ta formule mais plus du fichier actif à ce moment là.

En fait le Fichier qu'il crée, il l'ouvre sur une nouvelle fenêtre Excel. donc même si tu vas dans Fenêtre pour switcher manuellement tu ne verra dans la liste qu'un seul fichier et non 2.

Même si tu utilise le code :
Compte_fichier_ouvert = workbooks.count
Il te donnera 1 et non 2

Il faut que tu te débrouille pour que ton 2eme fichier soit créé dans la même session Excel que ton fichier principal.

J'espère être clair.
0