FORUM Tom's Hardware » Programmation » Autre » Aide Macro Excel - Visual Basic
 

Aide Macro Excel - Visual Basic

72 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Aide Macro Excel - Visual Basic
 
Plus d'informations

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.

Plus d'informations

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 ?


Message édité par galopin01 le 07-01-2005 à 21:01:19
Plus d'informations

Cette modification amène le message suivant :
Erreur d'exécution '424'
Objet requis
 
Qu'en penses-tu ?

Plus d'informations

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

Plus d'informations

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

Plus d'informations

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 ?

Plus d'informations

Oui, ça marche !!! Merci.

Plus d'informations

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 !

Profil : Pointeur
Plus d'informations

creer un nouveau topik :o

Plus d'informations

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

Plus d'informations

merci ca marche

il y a toujours moyen
Plus d'informations

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.  

il y a toujours moyen
Plus d'informations

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
Profil : Modérateur libre
Plus d'informations

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


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Profil : Pointeur
Plus d'informations

bon, ce nom de topik est un vrai attrape niewbies ...
je clos.


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u

Aller à :
  FORUM Tom's Hardware » Programmation » Autre » Aide Macro Excel - Visual Basic
 

Annonces Google
Publicité