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" ?
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 ...
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.
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