Programmation sous excel
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 50

Programmation sous excel



  1. #1
    vascochien

    Programmation sous excel


    ------

    Bonjour à tous et merci de m'accueillir sir ce forum.
    Voilà,je ne connais pas grand chose en programmation mais je voudrais attribuer à un bouton une macro qui sélectionnerait un ensemble de cellules,qui les copierait et les collerait dans un ensemble de cellules vides situées en dessous d'un collage précédent.Vous voyez?
    Si quelqu'un pouvait m'envoyer des lignes de code,ça m'arrangerait. merci

    -----

  2. #2
    mécano41

    Re : Programmation sous excel

    Bonjour,

    Cela veut-il dire, par exemple, que :

    - tu as des valeurs dans la plage A4:A7
    - tu copies ces valeurs en A14/C17
    - les valeurs dans la plage A4:A7 changent
    - tu copies les nouvelles valeurs en A18/C21
    - les valeurs dans la plage A4:A7 changent
    - tu copies les nouvelles valeurs en A22/C25
    - etc?

    Cordialement

  3. #3
    vascochien

    Re : Programmation sous excel

    - tu as des valeurs dans la plage A4:A7
    - tu copies ces valeurs en A14/C17
    - les valeurs dans la plage A4:A7 changent
    - tu copies les nouvelles valeurs en A18/C21
    - les valeurs dans la plage A4:A7 changent
    - tu copies les nouvelles valeurs en A22/C25
    - etc?
    Merci de la question

    Les valeurs A4:B4 sont copiées et collées par exemple en F2:G2,
    Les valeurs A4:B4 ne changent pas.
    Ensuite les valeurs A18:B18 sont copiées et collées en F3:G3,
    Les valeurs A18:B18 ne changent pas.
    Ensuite les 2 prochaines valeurs:A?:B? se retrouveront collées en F4:G4 etc..
    Donc tout ce que je colle se trouve dans la meme colonne les uns sous les autres.
    Je ne sais pas si je me fais bien comprendre.Si?

  4. #4
    mécano41

    Re : Programmation sous excel

    J'ai compris mais comment passes-tu de A4:B4 à A18:B18 etc.. en les sélectionnant?

    Ex. Tu sélectionnes A4:B4, tu cliques le bouton "copie", tu sélectionnes A18:B18, tu cliques le bouton "copie" etc

  5. A voir en vidéo sur Futura
  6. #5
    vascochien

    Re : Programmation sous excel

    Non je voudrais le faire faire par une macro?

  7. #6
    vascochien

    Re : Programmation sous excel

    J'ai mieux compris la question,pardon.
    j'ai 200 lignes mais je me vois mal créer 200 boutons de commande et leur attribuer a chacun une macro qui selectionnerait 2 cellules pour les copier et les coller ....
    En fait oui je pense qu'il me faudrait selectionner 2 cellules puis appuyer sur le bouton de commande.

  8. #7
    pi-r2

    Re : Programmation sous excel

    d'abord si la plage de cellules à copier ne change pas, tu lui donne un nom. Tu donne un nom à la cellule en haut à gauche de la plage ou tu veux commencer le collage.
    Ensuite tu enregistre la macro que tu voudrais faire. Excel te fait plein de code pas beau. Tu remplace la partie qui dit "coller" par une portion de code qui dit:
    application.goto (ou allerà en francais) "nomdelaplageoucoller"
    puis selection.fin xlversbas (ou quelquechose d'approchant, voir dans l'aide, désolé je n'ai pas xl en frenchie à la maison), puis selection.decaler (1,0) qui devrait sélectionner la première cellule vide en bas de ta plage.
    enfin tu mets l'instruction coller.
    Les bonnes idées triomphent toujours... C'est à cela qu'on reconnait qu'elles étaient bonnes !

  9. #8
    vascochien

    Re : Programmation sous excel

    Je suis en excel anglais moi aussi .Je vais essayer .je reviens dans un petit moment..;

  10. #9
    vascochien

    Re : Programmation sous excel

    Non je n'y arrive pas .ce serait possible de me faire ces lignes de code en anglais, Ce serait gentil.

  11. #10
    pi-r2

    Re : Programmation sous excel

    pas si simple sans excel sous la main ni ce que tu veux faire.
    Sais-tu enregistrer une macro ?
    Sais tu donner un nom à une plage de cellule ?
    Les bonnes idées triomphent toujours... C'est à cela qu'on reconnait qu'elles étaient bonnes !

  12. #11
    vascochien

    Re : Programmation sous excel

    Oui je sais enregistrer une macro et j'ai donné des noms a mes plages.Voici ou je suis:
    Sub Macro5()
    '
    ' Macro5 Macro
    ' Macro recorded 31/03/2007 by sam
    '

    '
    Range("A3:B3").Select
    Selection.Copy
    Range("F2").Select
    ActiveSheet.Application.Goto ("Carottes")
    End Sub

    Apres je bute sur "selection.fin xlversbas" que je ne sais pas traduire!!!

  13. #12
    mécano41

    Re : Programmation sous excel

    Voilà quelque chose qui doit faire ce que tu cherches

    Cordialement

    P.S : tu peux modifier la première ligne d'arrivée de la copie en modifiant la constante
    Fichiers attachés Fichiers attachés

  14. #13
    vascochien

    Re : Programmation sous excel

    Qu'est ce que ça veut dire ça:Pièces jointes en attente de validation?

  15. #14
    mécano41

    Re : Programmation sous excel

    Cela veut dire que tu dois attendre que le modérateur ait vérifié que la pièce jointe est saine. Après, tu pourras l'ouvrir.

    En attendant, c'est cela :

    Option Explicit
    Const LigneDépartCopie As Integer = 5 ' Position de la première ligne de la zone copie en colonne F

    Private Sub BoutonCopierColler_Click()
    Selection.Copy
    If Range("F65536").End(xlUp).Row = 1 Then
    Range("F" & Range("F65536").End(xlUp).Row + LigneDépartCopie).Select
    Else
    Range("F" & Range("F65536").End(xlUp).Row + 1).Select
    End If
    ActiveSheet.Paste
    End Sub

    Attention, en mettant la constante à 5 la copie se fait à la 6ème ligne
    Dernière modification par mécano41 ; 31/03/2007 à 19h33.

  16. #15
    vascochien

    Re : Programmation sous excel

    Je suis de sortie ce soir. Je reviendrai demain matin en attendant je vous remercie tous de vos sollicitudes et de vos compétences;a demain donc
    Sam

  17. #16
    vascochien

    Re : Programmation sous excel

    Citation Envoyé par mécano41 Voir le message
    Voilà quelque chose qui doit faire ce que tu cherches

    Cordialement

    P.S : tu peux modifier la première ligne d'arrivée de la copie en modifiant la constante
    Super,ça marche.
    Maintenant est il possible de ne sélectionner qu'une seule cellule tout en voulant quand meme la cellule adjacente?

    Merci

  18. #17
    vascochien

    Re : Programmation sous excel

    Dans mon enthousiasme j'ai oublié de saluer tout le monde.
    Je n'ai pas compris le "65536" est ce le nombre maximum de lignes d'excel?

  19. #18
    vanos

    Re : Programmation sous excel

    Citation Envoyé par vascochien Voir le message
    Je n'ai pas compris le "65536" est ce le nombre maximum de lignes d'excel?
    Bonjour,

    Oui.

    Salut.
    Connais toi toi-même (Devise de Socrate inspiré par Thalès)

  20. #19
    mécano41

    Re : Programmation sous excel

    Bonjour,

    Remplace le code par :

    Option Explicit

    Private Sub BoutonCopierColler_Click()

    Const LigneDépartCopie As Integer = 5 ' Position de la première ligne de la zone copie en colonne F
    Dim PlageàCopier As String

    PlageàCopier = Selection.Address & ":" & Selection.Offset(0, 1).Address ' prend l'adresse de la cellule sélectionnée et lui ajoute deux points et celle de la cellule adjacente
    Range(PlageàCopier).Select ' sélectionne la plage de deux cellules
    Selection.Copy
    If Range("F65536").End(xlUp).Row = 1 Then
    Range("F" & Range("F65536").End(xlUp).Row + LigneDépartCopie).Select
    Else
    Range("F" & Range("F65536").End(xlUp).Row + 1).Select
    End If
    ActiveSheet.Paste

    End Sub

    Cordialement

  21. #20
    vascochien

    Re : Programmation sous excel

    Excellent!!!!! Je vais me pencher sur le code pour essayer de comprendre En attendant merci mille fois

  22. #21
    mécano41

    Re : Programmation sous excel

    Quelques explications

    Option Explicit

    Private Sub BoutonCopierColler_Click()

    Const LigneDépartCopie As Integer = 5 ' Nb de lignes à passer avant la première ligne de la zone copie en colonne F
    Dim PlageàCopier As String ' déclare une chaÎne pour y mettre l'adresse de la plage de deux cellules à copier

    PlageàCopier = Selection.Address & ":" & Selection.Offset(0, 1).Address ' prend l'adresse de la cellule sélectionnée et lui ajoute deux points et l'adresse de la cellule adjacente pour créer l'adresse de la plage à copier
    Range(PlageàCopier).Select ' sélectionne la plage de deux cellules à copier
    Selection.Copy ' copie la cellule sélectionnée et la cellule adjacente
    If Range("F65536").End(xlUp).Row = 1 Then ' si la colonne est vide (première copie)
    Range("F" & Range("F65536").End(xlUp).Row + LigneDépartCopie).Select ' selectionne la première cellule de la colonne F où l'on doit copier (on commence après la valeur donnée dans la constante LigneDépart
    Else ' pour les copies suivantes
    Range("F" & Range("F65536").End(xlUp).Row + 1).Select ' on sélectionne à la suite
    End If
    ActiveSheet.Paste ' on colle

    End Sub

    Cordialement

  23. #22
    vascochien

    Re : Programmation sous excel

    Bon vous allez dire que je suis un maniaque,voici le problème:
    J'ai 200 lignes ,à partir de la ligne 37 jesuis obligé de remonter pour cliquer sur le bouton.
    Serait il possible que le bouton vienne se positionner automatiquement en face de la selection si possible dans la colonne C?

  24. #23
    mécano41

    Re : Programmation sous excel

    On devrait pouvoir le faire mais il faut que je cherche!

  25. #24
    mécano41

    Re : Programmation sous excel

    Pour que le bouton se déplace avec la sélection, il n'y a qu'une routine d'une ligne à ajouter et cela marche très bien mais une erreur survient, que je n'arrive pas à comprendre!

  26. #25
    vascochien

    Re : Programmation sous excel

    J'ai le temps!!!!! et c'est dimanche.Par contre quand ce sera fini et si cela intéresse quelqu'un c'est un logiciel de calcul pour ceux qui souhaitent suivre un régime diététique.

  27. #26
    pi-r2

    Re : Programmation sous excel

    salut,
    rappel je n'ai pas excel sous les yeux, mais on devrait pouvoir le faire sans selectionner, en prog objet pur: ça donnerait quelquechose proche decode honteusement piqué à mécano)

    Option Explicit
    Private Sub BoutonCopierColler_Click()
    Const LigneDépartCopie As Integer = 5
    Dim PlageàCopier As String
    PlageàCopier = Selection.Address & ":" & Selection.Offset(0, 1).Address

    Range(PlageàCopier).Copy

    If Range("F65536").End(xlUp).Row = 1 Then
    PlageàCopier="F" & Range("F65536").End(xlUp).Row + LigneDépartCopie
    Else ' pour les copies suivantes
    PlageàCopier="F" & Range("F65536").End(xlUp).Row + 1
    End If
    ActiveSheet.Paste cells(PlageàCopier)' on colle

    End Sub
    à tester.(pas sur de la nature du paramètre de paste, string ou range)
    Bien sur si la plage à copier est fixe, on peut simplifier encore
    Les bonnes idées triomphent toujours... C'est à cela qu'on reconnait qu'elles étaient bonnes !

  28. #27
    mécano41

    Re : Programmation sous excel

    Je n'ai pas compris pourquoi il y avait une erreur en rajoutant la routine de trois lignes du début, alors j'ai fait la copie différemment. Voilà la nouvelle routine :

    Option Explicit


    Private Sub Worksheet_SelectionChange(ByVa l Target As Range) ' s'il y a un changement de sélection dans la feuille
    BoutonCopierColler.Top = Selection.Top ' on place le bouton à la hauteur de la cellule sélectionnée
    End Sub

    Private Sub BoutonCopierColler_Click()
    Const LigneDépartCopie As Integer = 5 ' déclaration position de la première ligne de la zone "copie" en colonne F
    Dim PlageàCopier As String ' déclaration variable plage à copier (2 cellules)
    Dim PlageDeCopie As String ' déclaration variable plage de réception de la copie (2 cellules)

    PlageàCopier = Selection.Address & ":" & Selection.Offset(0, 1).Address ' on prend l'adresse de la cellule sélectionnée et lui ajoute deux points et celle de la cellule adjacente
    Range(PlageàCopier).Select ' on sélectionne la plage de deux cellules
    Selection.Copy ' on copie la sélection
    If Range("F65536").End(xlUp).Row = 1 Then ' si la colonne est vide
    PlageDeCopie = ("F" & Range("F65536").End(xlUp).Row + LigneDépartCopie - 1 & ":G" & Range("F65536").End(xlUp).Row + LigneDépartCopie - 1) ' la plage commence à 'LigneDépartCopie' du haut
    Else ' sinon
    PlageDeCopie = ("F" & Range("F65536").End(xlUp).Row + 1 & ":G" & Range("F65536").End(xlUp).Row + 1) ' la plage commence sous la dernière ligne
    End If
    ActiveSheet.Paste Destination:=Range(PlageDeCopi e) ' on copie à l'adresse définie ci-dessus
    Range(PlageàCopier).Select ' on resélectionne la plage de deux cellules pour garder le bouton visible
    End Sub

    Cordialement

    PS : il vaut mieux le copier en faisant 'citer' car je vois que l'éditeur fait une erreur dans la ligne ActiveSheet.Paste Destination:=Range(PlageDeCopi e) il ajoute un espace qui va faire une erreur
    Dernière modification par mécano41 ; 01/04/2007 à 15h27.

  29. #28
    vascochien

    Re : Programmation sous excel

    re.
    Erreur de compilation (ByVa l Target As Range) excel surligne le l ?

  30. #29
    mécano41

    Re : Programmation sous excel

    Si cela ne va pas, je l'enverrai en .zip

  31. #30
    vascochien

    Re : Programmation sous excel

    Desole et merci à pi-r2 mais cela ne marche pas peut etre la langue?

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Excel 3 sous XP
    Par vascochien dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 28/08/2010, 22h48
  2. Comment intégrer des données sous Excel dans un StringGrid sous C++ Builder ?
    Par invite386d297b dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 29/05/2007, 12h56
  3. Optimisation sous EXCEL
    Par mécano41 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 05/02/2007, 17h35
  4. Dérivation sous Excel !
    Par invitea87a1dd7 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 08/07/2006, 16h52
  5. graphique sous excel
    Par merou dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 06/09/2005, 23h20
Découvrez nos comparatifs produits sur l'informatique et les technologies.