petit probleme de macro

  • Initiateur de la discussion Jocelyn
  • Date de début
J

Jocelyn

Guest
Bonjours a tout le forum,

Je suis debutant en macro et je suis totalement coince alors comme j'ais deja trouvé de l'aide auprés des spécialistes que vous etes je me tourne vers vous.

j'ai créé un fichier pour établir des devis et en faire le suivi.
sur un onglet intitule devis j'ai plusieurs céllules qui contiennennt des liste déroulantes venant d'autre onglet du meme classeur (merci a thierryR), et j'ais un onglet (feuill1) sur lequel je voudrais qu'excel aille recopier les données de l'onglet devis.
pour ca j'ais fait "enregister une macro" en me disant que cela me permetrais de voir ce qui ce passe en VBA.

le premier probleme c'est que meme en identifiant la fonction de chacune des lignes de la macro je m'arrive pas a faire en sorte qu'elle arrete de passer d'une page a l'autre.

autre probleme si je change les données du devis il va ecrire les info sur la meme ligne que la fois précédente ce qui est normal puisque c'est l'adresse que donne ma macro alors comment faire pour indiquer a la macro qu'elle doit faire ses enregistrement sur la ligne d'après.


je ne suis pa sur d'avoir été très clair dans mon discour aussi je vous joint le fichier en pièce jointe.

Si quelqu'un peut m'aider.

Je vous remercie tous d'avance
 

Pièces jointes

  • devis.zip
    12.1 KB · Affichages: 12
  • devis.zip
    12.1 KB · Affichages: 12
  • devis.zip
    12.1 KB · Affichages: 13
M

myDearFriend

Guest
Bonjour Jocelyn, le Forum.

Je te propose le code ci-dessous :

Private Sub btnArchiver_Click()
Dim TabTemp(1 To 11) As Variant
Dim L As Long
'Mémoriser les données à archiver
With Sheets("Devis")
TabTemp(1) = .Cells(4, 2)
TabTemp(2) = .Cells(7, 2)
TabTemp(3) = .Cells(11, 2)
TabTemp(4) = .Cells(9, 2)
TabTemp(5) = .Cells(13, 2)
TabTemp(6) = .Cells(19, 2)
TabTemp(7) = .Cells(30, 2)
TabTemp(8) = .Cells(36, 2)
TabTemp(9) = .Cells(27, 3)
TabTemp(10) = .Cells(42, 3)
TabTemp(11) = .Cells(44, 3)
End With
'Stocker les données dans la feuille d'archive
With Sheets("Feuil1")
'Déterminer 1ère ligne libre
L = .Range("A65536").End(xlUp).Row + 1
'Stocker les valeurs sur cette ligne libre
.Range(.Cells(L, 1), .Cells(L, 11)).Value = TabTemp
'Format d'affichage de la date
.Cells(L, 1).NumberFormat = "d mmmm yyyy"
'Afficher l'onglet "Archives"
.Activate
End With
End Sub

Tu trouveras ci-joint ton fichier modifié en conséquence.

Cordialement.
Didier_mDF
 

Pièces jointes

  • PourJocelyn.zip
    16.4 KB · Affichages: 19
J

Jocelyn

Guest
Bonjour Didier_mDF

C'est génial c'est exactement ce que je cherchais vous etes vraiment des spécialistes hyper sympa ca c'est les remerciement pour la macro en elle meme.

et un deuxieme merci pour la leçon sur les macros je veux dire par la que le fait d'indiquer a quoi servent chacunes des lignes permet au novice que je suis de comprendre le déroulement de la macro et a force de pouvoir les reproduire et voir les changés en cas de besoin. il est très important a mon avis de comprendre ce que l'on fait et ce type d'aide y pourvoit.

quand je serais "un grand d'excel" je pourrais a mon tour donner un coup de main.

encore merci

Jocelyn
 

Discussions similaires

Réponses
8
Affichages
469

Statistiques des forums

Discussions
312 313
Messages
2 087 165
Membres
103 485
dernier inscrit
maintenance alkern