Aide Macro Excel - Visual Basic

Statut
N'est pas ouverte pour d'autres réponses.

jlchaps

Habitué
Je voudrai créer une macro dans Excel 2000 qui permette de sélectionner une ligne d'une feuille appellée "Maintenance" et la déplacer automatiquement à la fin d'une autre feuille appelée "Archive" (après sélection de la ligne concernée et utilisation du raccourci CTRL/q).

En utilisant le gestionnaire de macro, voilà ce que j'obtiens :
----------------------------------------------------------------------
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 07/01/2005 par jlchapel
'
' Touche de raccourci du clavier: Ctrl+q
'
Selection.Cut
Sheets("Archive").Select
ActiveCell.SpecialCells(xlLastCell).Select
Range("A4").Select
ActiveSheet.Paste
Sheets("Maintenance").Select
Selection.Delete Shift:=xlUp
End Sub
----------------------------------------------------------------------
Le problème, c'est qu'à chaque fois que je fais CTRL/q sur une ligne sélectionnée de la feuille "Maintenance", elle est déplacée dans la feuille "Archive" mais toujours à la ligne 4.
Pourtant, lors de l'enregistrement de la macro, je fais :
- "CTRL/FIN" pour aller à la fin de la feuille
- "Flèche vers le bas" pour aller à la ligne suivante
- "Home" pour venir en début de cette ligne.

Mais cette combinaison de touche est traduite en Visual Basic par "sélectionner la cellule A4" !!!! Pourtant, dans un vieux Excel, quand on utilisait une flèche de déplacement dans l'enregistrement d'une macro, c'était bien traduit par un déplacement sans coordonnées fixes.

Comment je peux modifier manuellement cette macro pour lui dire d'aller au début de la dernière ligne vide avant de faire le "copier" ?

Merci de votre aide.
 

galopin01

Habitué
bonsoir,
modifie ta macro de la manière suivante :

Selection.Cut
Sheets("Archive").Select
UsedRange.SpecialCells(xlLastCell).End(xlToLeft).Select
ActiveSheet.Paste
Sheets("Maintenance").Select
Selection.Delete Shift:=xlUp

Ok ?
 

jlchaps

Habitué
Cette modification amène le message suivant :
Erreur d'exécution '424'
Objet requis

Qu'en penses-tu ?
 

galopin01

Habitué
Sorry !
ActiveSheet.UsedRange.SpecialCells(xlLastCell).End(xlToLeft).Select
Cà va mieux ?
 

jlchaps

Habitué
Dans mon exemple, la feuille "Archive" contient 11 colonnes (de A à K).
Par contre, la fonction "ActiveSheet.UsedRange.SpecialCells(xlLastCell).End(xlToLeft).Select" que tu préconise positionne le curseur sur la cellule G de la dernière ligne utilisée (car je pense seules les colonnes B et G sont non vides sur cette ligne).
Quand la fonction "ActiveSheet.Paste" s'exécute, cela donne "Erreur d'exécution 1004 - cette sélection n'est pas valide".
En vérité, il faut que le curseur vienne se positionner en colonne A de la première ligne vide en fin de document (ligne N+1 ; N=dernière ligne active).
Voilà le problème ...
 

galopin01

Habitué
bonsoir,
désolé, je fais un peu entre 2 portes et sans vraiment pouvoir tester...
essaie celà :

Selection.Cut
Sheets("Archive").Select
k = ActiveSheet.UsedRange.SpecialCells(xlLastCell).End(xlToLeft).Row + 1
Cells(k, 1).Select
ActiveSheet.Paste

Ca marche ?
 

veronique_cdpdj

Nouveau membre
Bonjour, il semble que qqn ici pourra m'aider...

J'ai un gros document dans Excel et je voudrais :

1) Effacer les lignes vides
2) Faire écrire une numérotation automatique dans la première cellule de chaque ligne en arrêtant à la fin de mon document.

Merci !
 

mano81

Nouveau membre
bonjour
j ai essayer cette macro Lle probleme c est quelle me suprime la ligne comment faire pour juste la copier
merci de votre aide
 

kossivic

Habitué
bonjour, je ne tiens pas à créer un nouveau sujet mais mon problème se limite à la création d'une formule et la mettre en macro.
 

kossivic

Habitué
j'ai converti un tableau PDF en excel, en conclusion le nombre de "nom prénom" ne correpond pas au "reference". Je cherche une formule qui peux renvoyer dans les cellules "nom prénom" le nom correspondant à leur référence et le mettre en macro.
comment faire?
j'ai essayé ceci =SI(ET((B7=C5);(B8=C6));B5;"") mais je tiens à ne pas toujours avoir B5 comme réponse mais quelque chose comme "le cellule 2X au dessus de B7 "B(7-2)" ce que je n'arrive pas à faire.
Merci de m'aider
 

zeb

Modérateur
Sois le bienvenu, kossivic
Merci de créer ton propre sujet.

Si tu cherches de l'aide sur la programmation de macros Excel, tu es bien tombé.

Si tu veux de l'aide sur l'art de faire des formules dans Excel, je t'invite plutôt à allez visiter le forum "Le Monde de Windows".
 

KangOl

Grand Maître
bon, ce nom de topik est un vrai attrape niewbies ...
je clos.
 
Statut
N'est pas ouverte pour d'autres réponses.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 718 034
Membres
1 586 389
Dernier membre
ROCKET8
Partager cette page
Haut