IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Excel vba et algorithme d'attribution


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Par défaut Excel vba et algorithme d'attribution
    Voilà, j'aimerais trouver le moyen de sélectionner le plus grand nombre d'une colonne et d'attribuer ce nombre + 1 dans une cellule d'un fichier excel.

  2. #2
    RLX
    RLX est déconnecté
    Membre éclairé Avatar de RLX
    Inscrit en
    Octobre 2004
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 51
    Par défaut
    Salut razorlok,

    tu peux utiliser la formule "MAX" ça fais ce que tu aimerais je pense

  3. #3
    Membre éclairé
    Profil pro
    maçon
    Inscrit en
    Novembre 2004
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : maçon

    Informations forums :
    Inscription : Novembre 2004
    Messages : 292
    Par défaut
    un p'tit exemple vba

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim vPlage As Range
    Dim vMax As Integer
    Set vPlage = Range("A1:a500")
    vMax = 0
    For Each vCell In vPlage
       If vCell.Value > vMax Then vMax = vCell.Value
    Next
     
    Workbooks("tonfichier.xls").Worksheets("Feuil1").Cells(5, 1).Value = vMax
    vala vala

  4. #4
    RLX
    RLX est déconnecté
    Membre éclairé Avatar de RLX
    Inscrit en
    Octobre 2004
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 51
    Par défaut
    ou plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B10").Formula = "=MAX(A:A)+1"

  5. #5
    Membre confirmé Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Par défaut
    Merci de vos réponses, cela m'éclaire un peu plus.
    Cependant, je désire ajouter ce nombre +1, que je compte a partir d'une feuille1, dans une feuille2. Existe-t-il une commande du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("feuille2").Select
    Range("B14") = Sheets("feuille1").Cells("G3")
    Je voudrais donc afficher le résultat obtenu en feuille1 dans une cellule de la feuille2.

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    dans la mesure du possible évite les Select et Activate...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("feuille2").Range("B14") = Sheets("feuille1").Range("G3")

  7. #7
    Membre confirmé Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Par défaut
    En fait, vu que mes valeurs ne sont pas des suites de nombre (je commence a 56 et le nombre suivant est 150) j'ai pensé a une structure while :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim MaxC As Integer
     
    Sheets("feuille2").Select
    Set vCode = Range("A4:A500")
    While vCode <> ""
    MaxC = ????
     
    Sheets("feuille1").Select
    Sheets("feuille1").Range("D14") = MaxC + 1
    Seulement je ne sais pas comment remplacer les ???? de façon a ce que MaxC reçoive la valeur suivante, sachant que le nombre peut passer, comme dans mon exemple, de 56 a 150...

  8. #8
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 820
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 820
    Par défaut
    Quel est l'intérêt de passer par une macro alors que ça marche très bien (et c'est plus simple, et c'est mis à jour automatiquement) avec de simples formules excel???

    Tu mets:

    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    =MAX('feuille2'!A4:A500)+1

    dans ta cellule D14 de la feuille1 et ça fera le même effet... (vérifier la syntaxe pour la zone sélectionnée en fonction du nom de la feuille... ou sélectionner en automatique)

    Pourquoi faire compliqué quand on peut faire simple?
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  9. #9
    Membre confirmé Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Par défaut
    J'ai besoin d'affecter cette formule a un boutton plegat, c'est pour celà que je part dans un While...
    Je pense que ma formule marcherait si je trouvais comment affecter a MaxC la valeur de la cellule suivante dans la colonne, dans ma ligne "MaxC = ????"

  10. #10
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    pas clair ... ton max..? il est censé contenir quoi ..? la valeur la plus "grande" dans ta colonne..A4:A500? ou la derniére valeur de ta colonne..

  11. #11
    Membre confirmé Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Par défaut
    La valeur la plus grande, mais au pire, la dernière valeur, vu que j'ai fait un tri croissant.

  12. #12
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    en considérant que toutes tes cellules contiennent une valeur de A4 ... jusqu'à la cellule cherchée tu peu faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheets("feuille1").Range("D14") =Sheets("feuille2").Range("A4").End(xlDown) +1
    Ou en utilisant la fonction de feuille de calcul Max dans le code VBA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sheets("feuille1").Range("D14") =Application.WorksheetFunction.Max (sheets("feuille2").Range("A4:A500"))+1

  13. #13
    Membre confirmé Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Par défaut
    Ah, ça fonctionne!
    Merci bien a vous pour vos réponses.
    Encore une question de débutant, mais y-a-t'il une fonction pour copier le contenu d'une cellule dans une cellule d'une autre page ?

  14. #14
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par razorlok
    Ah, ça fonctionne!
    Merci bien a vous pour vos réponses.
    Encore une question de débutant, mais y-a-t'il une fonction pour copier le contenu d'une cellule dans une cellule d'une autre page ?
    ?? http://www.developpez.net/forums/sho...21&postcount=6

  15. #15
    Membre confirmé Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Par défaut
    Ah désolé j'avais oublié cette réponse.

    Je viens d'essayer et celà m'efface les valeurs que je viens de saisir.

    Je cherche une commande qui me permettrais de selectionner plusieurs cellules et de les copier dans d'autres cellules d'une feuille différente.

    Est-ce possible ?

  16. #16
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ben soit je comprends pas la question soit tu utilise mal le code .. pour plusieurs cellules tu peu écrire par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets("Feuil1").range("A6:A10") = Sheets("Feuil2").range("A4:A8").value
    et ainsi tu copie les valeurs contenu dans la feuil2 du classeur courant en A4:A8 vers la feuil1 du même classeur en A6:A10 ...

  17. #17
    Membre confirmé Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Par défaut
    En effet, c'est moi qui me suis trompé dans l'ordre des feuilles.
    La commande marche bien.
    Merci pour tout encore une fois!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [excel vba]case à cocher dans excel pour plusieurs lignes
    Par fcoisb dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/03/2005, 12h23
  2. EXcel VBA analyse de sharpe
    Par vanima dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/02/2005, 14h07
  3. [Excel - VBA] Problème de suppression de lignes...
    Par beholder2 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/01/2005, 18h27
  4. Réponses: 5
    Dernier message: 26/05/2004, 11h42
  5. [VBA-E]modifier les attributs d'un commentaire dans une cellule
    Par Olivier vb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/03/2004, 11h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo