[VBA-E] Suppression de cellule avec colonnes fixes

Suppression de cellule avec colonnes fixes [VBA-E] - VB/VBA/VBS - Programmation

Marsh Posté le 02-08-2006 à 16:23:49    


Bonjour tout le monde !!
 
J'ai une petite colle... J'ai un tableau qui s'étend sur trois feuilles, les une à côté des autres. Or dans chaque tableau, les deux premières colonnes contiennent les numéros de mesures. Une fois que mes tableaux sont remplis, je voudrais supprimer les colonnes vides. Le range.delete shift:=xltoleft c'est bien mais ça me décalle aussi mes colonnes de début de tableau qui doivent rester fixes... Y a-t-il moyen de programmer que mes colonnes ne bougent pas  de façon simple ? (J'ai aussi le même problème lorsqu'il s'agit d'insérer une colonne...
Est-ce que c'est possible de faire un masque du tableau un peu comme sous ppt avec des cellules que l'utilisateur verrait mais pas le prog ?  
 
Merci d'avance pour votre aide
 

Reply

Marsh Posté le 02-08-2006 à 16:23:49   

Reply

Marsh Posté le 02-08-2006 à 16:30:07    

tu peux faier un programme bourrin qui te teste toutes les cellules d'une colonne, si elles sont toutes vides alors tu recopies toutes les cellules de la colonne suivante etc. Sinon, en faisant moins le malin, je ne comprends pas le "mais ça me décalle aussi mes colonnes de début de tableau qui doivent rester fixes" pkoi ca décallerait ? :pt1cable:

Reply

Marsh Posté le 02-08-2006 à 16:41:12    

jpcheck a écrit :

tu peux faier un programme bourrin qui te teste toutes les cellules d'une colonne, si elles sont toutes vides alors tu recopies toutes les cellules de la colonne suivante etc. Sinon, en faisant moins le malin, je ne comprends pas le "mais ça me décalle aussi mes colonnes de début de tableau qui doivent rester fixes" pkoi ca décallerait ? :pt1cable:


 
Bah en fait j'avais pensé à cette méthode bourrin mais je me suis dit qu'il y avait peut-être plus simple. d'où l'idée du masque...
 
 
http://img316.imageshack.us/img316/2782/pvyi0.th.jpg
Sur cette image, mes colonnes vertes doivent rester fixe. Si je supprime une colonne entre ces deus paires de colonnes vertes, alors celle de droite (la paire verte) va se décaller ce que je ne veux pas.
 

Reply

Marsh Posté le 02-08-2006 à 16:44:57    


elles doivent rester fixes "géographiquement" (emplacement fixe) ou bien au niveau du numéro de la colonne ?

Reply

Marsh Posté le 02-08-2006 à 16:49:32    

jpcheck a écrit :

elles doivent rester fixes "géographiquement" (emplacement fixe) ou bien au niveau du numéro de la colonne ?


 
Elles doivent toujours être mes deux premières colonnes de ma page. Peu importe le numéro de la colonne du moment qu'à l'impression, ce sont les deux premières colonnes...
(comment ça j'ai des tableaux de m$$$$...??  :lol: )
 

Reply

Marsh Posté le 02-08-2006 à 16:50:50    

surikat14 a écrit :

Elles doivent toujours être mes deux premières colonnes de ma page. Peu importe le numéro de la colonne du moment qu'à l'impression, ce sont les deux premières colonnes...
(comment ça j'ai des tableaux de m$$$$...??  :lol: )


si tu appliques un delete de colonne, je ne vois pas en quoi tes colonnes A et B seront déplacées... c'est ce qui t'arrive ? :heink:

Reply

Marsh Posté le 02-08-2006 à 16:57:17    

jpcheck a écrit :

si tu appliques un delete de colonne, je ne vois pas en quoi tes colonnes A et B seront déplacées... c'est ce qui t'arrive ? :heink:


 
 
Non mais c'est ce qui arrive à la paire de droite. Elles se retrouvent donc en fin de page 1 au lieu d'être en début de page 2
 
 
 

Reply

Marsh Posté le 02-08-2006 à 17:04:03    

surikat14 a écrit :

Non mais c'est ce qui arrive à la paire de droite. Elles se retrouvent donc en fin de page 1 au lieu d'être en début de page 2


je propose une récupération via une boucle de ce qui apparait dans ta colonne verte de droite, et de limiter la pagesetup.Printarea à la colonne juste avant :D

Reply

Marsh Posté le 02-08-2006 à 17:12:33    

jpcheck a écrit :

je propose une récupération via une boucle de ce qui apparait dans ta colonne verte de droite, et de limiter la pagesetup.Printarea à la colonne juste avant :D


 
 
Euh....   :heink: .... :sweat:  
 

Reply

Marsh Posté le 02-08-2006 à 17:27:19    

surikat14 a écrit :

Euh....   :heink: .... :sweat:


Exemple alors :
dim col as integer
dim colA as string
for i = 3 to 45
if cells(18,i).colorindex = (voir code couleur du vert clair ) then
'recup de la colonne
col = i
i = 46
end if
next i
colA=retranscrirecolonnelettre(col)
pagesetup.printarea = "$A$1:$" & colA & "$47"

Reply

Marsh Posté le 02-08-2006 à 17:27:19   

Reply

Marsh Posté le 02-08-2006 à 19:59:56    

Tu peux aussi définir ta cellule AI13 par un nom (Insertion / Nom / Définir) par exemple DebP2
définir ton bas de page par un autre nom  EndP2 (ou par macro) et définir ton printarea comme ça :
 
ActiveSheet.PageSetup.PrintArea = "DebP2:EndP2"
ou de manière Mixte :
 
ActiveSheet.PageSetup.PrintArea = "DebP2:AZ55"
 
ça c'était pour la page 2, mais tu peux faire de même pour la page 1 et toutes les autres pages...
Insertion / Nom / Définir[/b
DebP1 = A13
EndP1 = Z55
et...
[b]ActiveSheet.PageSetup.PrintArea = "DebP1:EndP1"

 
A+


Message édité par galopin01 le 02-08-2006 à 20:04:38
Reply

Marsh Posté le 04-08-2006 à 09:53:04    


Bonjour tout le monde !!  :hello:  
 
Bon ça y est j'ai réussi !! En fait j'ai mis les tableaux les uns en dessous des autres et ça a été plus pour gérer mon affaire !!
 
Merci de votre aide jpcheck et galopin01 ! En plus j'ai pu apprendre la fonction PrintArea !! Si yen a qui veule voir le code, faites signe, je mettrai mon "usine à gaz" !!
 
Bonne journée et Bon WE !! (plus que 1h35 pour moi...)
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed