Ajout/suppr lignes et macros adaptées auto

Paladin

XLDnaute Junior
Bonjour tout le monde,

Bon, problème (simple) : comment faire (si c'est possible !) pour qu'une macro s'adapte automatiquement si dans ma feuille je rajoute/supprime une ligne/colonne ?
Parce que là ça devient vite énervant de devoir parcourir à chaque fois ma macro (et près de 2000 lignes de code) si je modifie ma feuille (ce qui se passe à chaque révision de mon application suite à l'évolution du besoin de mes cliens).

Merci d'avance ...
 

Creepy

XLDnaute Accro
Bonjour Forum, Paladin,

Le plus simple serait de declarer une variable avec la fin de ton tableau ligne et colonne de cette manière.
Code:
Dim FinCol as integer, FinLigne as integer

Fincol = range('A1').end(xltoright).column
FinLigne = range('A1').end(xldown).row
et apres tu te serts de fincol et finligne pour indiquer la fin de ton tableau.

En cours de route tu peux relancer une detection pour updater ton tableau.

La meilleur solution serait que tu mettes un PJ qu'on puisse regarder le code et te dire.

++

Creepy

EDIT : BONJOUR ROBERT : DOUBLE POST A LA MEME HEURE LOL :woohoo:

Message édité par: Creepy, à: 06/07/2005 15:39
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Paladin, bonjour le forum,

Un petit copier/coller de ta macro et on se fera un plaisir d'y jeter un œil et de te trouver la meilleure solution à ce problème... Allez, fais un petit effort... Ctrl C puis Crtl V...


Édition

Salut Creepy, on s'est croisé. L'autre jour j'ai lu un post ou tu t'étais énervé grave (mais à mon sens tu avais tout à fait raison). Tu vois aujourd'hui c'est moi qui ai mes ragnagnas...

Message édité par: Robert, à: 06/07/2005 15:40
 

Paladin

XLDnaute Junior
En fait, ça donne quelque chose comme ça (mais en bcp plus fourni) :

Code:
Sub Test()
    Dim Somme As Integer
    For I = 2 To 10
        Somme = Somme + Cells(I, 1).Value
    Next
    Cells(2, 1).Value = Somme * Cells(I, 1).Value
End Sub

Le problème, c'est quand mon client me dit (exemple) : 'Et si on rajoutait une cellule de titre !'.
Donc j'insère une nouvelle ligne, ce qui décale mes lignes avec les valeurs, mais la macro considère toujours de 2 à 10 (alors qu'elle devrait faire de 3 à 11 maintenant).
Ce n'est qu'un exemple, mais quand ça survient toutes les semaines, c'est embetant. Ce que je voudrais, c'est que la macro réagisse comme les formules dans les cellules (qui, elles, s'adaptent aux ajout/suppr de lignes et colonnes).

PS : Oui, je sais, mon client est embétant ! :angry:
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour le fil, bonjour le forum,

Dans cet exemple à adapter je considère que la somme se trouve dans la colonne A et que tout est vide en dessous de la dernière ligne éditée en A :


Sub Test()
Dim Somme As Integer
For I = 2 To Range('A65536').End(xlUp).Row
Somme = Somme + Cells(I, 1).Value
Next
Cells(2, 1).Value = Somme * Cells(I, 1).Value
End Sub

Message édité par: Robert, à: 06/07/2005 21:47
 

Discussions similaires

Statistiques des forums

Discussions
312 231
Messages
2 086 438
Membres
103 209
dernier inscrit
MIKA33260