Macro

S

STEF

Guest
étant donné que j'ai conçu un tableau de 200 lignes, et que je ne voudrai pas faire une macro par ligne.Est-il possible de pouvoir exécuter une macro selon un choix de ligne au préalable?
1 je sélectionne la ligne voulue.
2 j'exécute la macro (ex: imprime la ligne).
 
@

@+Thierry

Guest
Salut STEF

OUI c'est tout à fait possible... Mais bon faut savoir un peu plus de ton tableau....

Disons que la macro pourra (entre autres) être basée sur "ActiveCell"... avec des "Offset" pour selectionner les cellules adjacentes de la même ligne...

Mais il faudrait au moins savoir combien de colonnes contient ce tableau...

...(?)
@+Thierry
 
S

STEF

Guest
salut Thierry merci pour ton début de réponse
mon tableau comporte 31 colonnes
ce que je recherche sait:
Dans une feuille nommée (base) enregistrer une partie de la ligne et la coller sur une autre feuille (sortie vo,vc)
dans le même temps effacé toute la ligne dans la (base).
 
A

andré

Guest
Salut STEF,

La copier où sur l'autre feuille ?
D'autre part, je crois qu'il est plus simple de Couper / Coller, puis d'effacer sur l'autre feuille les données superflues (si ces cellules ne sont pas déjà occupées par d'autres données ou formules).

André
 
@

@+Thierry

Guest
Bonsoir Stef et André et tous les ami(e)s

Bon Stef vu que tu n'as pas trouvé de solution (mis à part de t'adresser directement en Bal) voir ce fil .... <http://www.excel-downloads.com/html/French/forum/messages/1_9074_9074.htm>

Voici une solution en "copie/collage"... (attention si tu veux une copie conservant ou non les formules/Formats etc, ici c'est "paste value" donc PLUS de formule ni de formatage...)

Sub ActiveLigneCopy()
Dim Ligne As Integer
ActiveCell.Activate
Range(Selection, Selection.End(xlToLeft)).Activate
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("Feuil2").Select
Ligne = Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1
Range("A" & Ligne).Select
Selection.PasteSpecial Paste:=xlValues
Range("A1").Select
Sheets("Feuil1").Activate
Selection.EntireRow.Delete
Range("A1").Select
End Sub

Dans ce code la "Feuil1" est la base de donnée et Feuil2 est la collection des donnée... à adapter à ton classeur...

Je pense que c'est ce que tu veux obtenir, cette macro copie la ligne ou se trouve la cellule active, la reporte dans une autre feuille et ensuite détruit la ligne dans la feuille d'origine... (ne pas utiliser en multi-selection de cellules non adjacente car "EntireRow.delete" provoque un décalage)

Bonsoir
@+Thierry
 

Discussions similaires

Réponses
6
Affichages
193

Statistiques des forums

Discussions
314 655
Messages
2 111 604
Membres
111 217
dernier inscrit
aladinkabeya2