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 :

[VBA-E]SOS besoin d'aide pour un macro


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut [VBA-E]SOS besoin d'aide pour un macro
    --------------------------------------------------------------------------------

    Bonjour,

    je dois me mettre a excel pour un projet et manipulé des milliers de data, donc j ai besoin de faire des macros avec VBA mais je n ai aucune base, l informatique n'est pas trop mon truc a la base...donc je suis un peu perdu et j aurai besoin de quelqu'un pour m'ecrire un petit code, quelque chose d assez simple pour vous je pense...

    voila la fonction qu'il me faut

    si les valeur des cellules des colonnes A et C ne sont pas egales
    alors decaler les cellules vers le bas jusqu a ce que les valeurs soir egales
    et effacer les ligne entre l ancienne emplacement et le nouveau emplacement...

    Je ne sais pas si c'est tres cler..

    en fait j ai 1 collone de measure correspondant a des jours, et une autre collone de measure (d'un autre site) correspondant a des jours, des fois il ya plus de measure a un site qu a l autre pour la meme journee et j ai besoin de les faire correspondre en les allignant...je fais un dessin


    Site 1 Site 2
    jour vitesse
    1 23 1 24
    1 12 2 21
    2 4 2 12
    2 3 2 11
    3 6 3 17

    et il me faut

    Site 1 Site 2
    jour vitesse
    1 23 1 24

    2 4 2 21
    2 3 2 12

    3 6 3 17


    Voila, j espere que quelqu un pourra m aider, Merci d'avance!

  2. #2
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    bienvenue sur le forum..

    déjà ... commence par lire les régles du forums ..
    plus particuliérement
    http://club.developpez.com/regles/#L4.12
    ensuite modifie ton titre... mais nous quelque chose de plus parlant ....

    puis commence quelque chose et dit nous ou tu bloque ..

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Besoin d'aide sur un simple macro excel
    Bonjour,

    je dois me mettre a excel pour un projet et manipulé des milliers de data, donc j ai besoin de faire des macros avec VBA mais je n ai aucune base, l informatique n'est pas trop mon truc a la base...donc je suis un peu perdu et j aurai besoin de quelqu'un pour m'ecrire un petit code, quelque chose d assez simple pour vous je pense...

    voila la fonction qu'il me faut

    si les valeur des cellules des colonnes A et C ne sont pas egales
    alors decaler les cellules vers le bas jusqu a ce que les valeurs soir egales
    et effacer les ligne entre l ancienne emplacement et le nouveau emplacement...

    Je ne sais pas si c'est tres cler..

    en fait j ai 1 collone de measure correspondant a des jours, et une autre collone de measure (d'un autre site) correspondant a des jours, des fois il ya plus de measure a un site qu a l autre pour la meme journee et j ai besoin de les faire correspondre en les allignant...je fais un dessin


    Site 1 Site 2
    jour vitesse
    1 23 1 24
    1 12 2 21
    2 4 2 12
    2 3 2 11
    3 6 3 17

    et il me faut

    Site 1 Site 2
    jour vitesse
    1 23 1 24

    2 4 2 21
    2 3 2 12

    3 6 3 17


    Voila, j espere que quelqu un pourra m aider, Merci d'avance!



    voila ce que j ai commené a faire, ca bloque au debut au quand je defini le variable X et Y


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    sub testVBA()
     
    Application.ScreenUpdating = False
     
    Do Until ActiveCell.Value = ""
     
    X = ActiveCell.Value.Column("A:A")
    Y = ActiveCell.Value.Column("E:E")
     
        If X <> Y Then
     
        ActiveCell.EntireRow.Delete
     
        End If
     
    Loop
    End Sub

  4. #4
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    bien tu as posté un peu de code .. on vas essayer de le déchiffrer .. en attendant change ton titre .. et évite le multipost .. SVP.. (j'ai du fusionner tes 2 messages ..)

    utilise Tab. de bord
    en haut à gauche ..ou Liens Rapides. Puis discussion suivies

  5. #5
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    tu pourrai peu-être t'inspirer de la solution posté ici :

    [VBA E]recherche de toutes lignes avec zero

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Tiens,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub JustePourLecossais()
    Dim DernièreLigne, i
        DernièreLigne = Cells(1, 1).CurrentRegion.End(xlDown).Row
        For i = DernièreLigne To 1 Step -1
            If Cells(i, 1) <> Cells(i, 3) Then Rows(i).EntireRow.Delete
        Next
    End Sub
    Une autre version que celle indiquée par bbil mais qui devrait t'aller

    A+

    Et, comme te dit bbil, change le sujet de ta question. "Recherche de cellules ayant la même valeur" par exemple... mais tu peux trouver mieux
    Tout le monde qui pose une question a besoin d'aide

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Salut a tous

    merci pour votre aide Bbill et ouskel'n'or, le code marche, c'etais exactement ce que je souhaitais.

    mais malheureusement je n ai pas prit mon probleme du bon coté. en fait j ai besoin utiliser ce code sur 2 listes de données indexé de 1 a 365, mais il ya des trous dans ces listes,des fois ca saute de de 5 a 7, 270 à 280, dans une iste, ce qui me cree un decalage.

    je voudrais faire correspondre les donnees de list 1 et 2 qui sont de meme valeur dans l index 1 a 365.

    le code que tu m'a filer supprime tout des qu'il ya un decalage dans l index, or j aimerai que des que ce decalage est detecter, les cellules soit decalager vers le bas pour continuer la correspondance des cellules et suprimer celles qui n ont pas trouver de valeur egal dans l index

    index 1 index 1

    1 23 23 1 23 23
    2 23 23 3 23 23
    3 23 23 4 23 23
    4 23 23

    et je voudrais

    1 23 23 1 23 23
    3 23 23 3 23 23
    4 23 23 4 23 23

    J'espere que quelqu un pourra me filer un ptit coup de main,

    merci d'avance

  8. #8
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Et ton tag dans le titre ?
    Tu n'es plus nouveau, maintenant.
    Alors ?

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Qu'est ce qur tu appeles un tag
    desole, tu dois tu dire p**ain de nouveau mais c'est quoi un tag?

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut ce code delete au au lieu de decaler
    Le probleme avec ce code est qu il efface quand il capte quand les valeurs sont differents dans les indexs alors que jaime qu'il decale pour les faire correspondre et efface seulement les l'index qui n a pas d'equivalent.

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub JustePourLecossais()
    Dim DernièreLigne, i
        DernièreLigne = Cells(1, 1).CurrentRegion.End(xlDown).Row
        For i = 1 To DernièreLigne 
            If Cells(i, 1) <> Cells(i, 3) Then Cells(i, 1).Delete
        Next
    End Sub
    Un truc comme ça, ça t'irait ?

    A+

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut besoin d'un programme pour un decalage de cellules
    bonjour,

    j ai deux set de collonnes a faire correspondre, les 2 index ont un decalage et je voudrai que lorsque l'index du set 1 n a pas d'equivalent avec l'index du set 2, les cellules du set soit effacées.

    par exemple, j ai 2 index

    1 1
    1 2
    2 2
    2 3
    2 3
    3 4
    ...
    Je voudrai obtenir une correspondance
    1 1
    2 2
    2 2
    3 3
    3 3
    .....

    chaque index a 2 collones de valeur correspondante qui doivent suivre avec...

    voila le code de ouskel'n'or, mais il efface l'entiere l'entiere ligne, le decalage n'est pas rattraper.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ()
    Dim DernièreLigne, i
        DernièreLigne = Cells(1, 1).CurrentRegion.End(xlDown).Row
        For i = DernièreLigne To 1 Step -1
            If Cells(i, 1) <> Cells(i, 3) Then Rows(i).EntireRow.Delete
        Next
    End Sub

    Please comment resoudre mon probleme?

    merci

  13. #13
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut precision sur l algorithm
    il me faudrai en fait ecrire sous form VBA

    si index 1 different de index 2

    effacer les cellules (index + 2 collone a droite de celle ci) de la plus petite valeur des deux, effacer jusqu a la ligne ou les valeur se retrouve egale a nouveau.

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    ou, si tu dois supprimer les cellules de la colonne B à la colonne E et non la cellule de la colonne A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        If Cells(i, 1) <> Cells(i, 3) Then Range(Cells(i, 2),Cells(i,5).Delete Shift:=xlUp
    Tu dis

  15. #15
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut c'est bon
    C'est ok ouskel'n'or, je te remercie

  16. #16
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Ok, alors pense au bouton Résolu

  17. #17
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    J'ai fusionné les 3 discussions qui tournent autour du même sujet.

Discussions similaires

  1. besoin d'aide pour une macro
    Par STEFLOU dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/04/2012, 13h31
  2. [XL-2007] Besoin d'aide pour ma macro
    Par algerien73 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/09/2011, 13h13
  3. [XL-2002] Besoin d'aide pour finaliser Macro mise en forme + bordure
    Par warrio67 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/03/2010, 05h23
  4. Besoin d'aide pour une macro en visual basic
    Par raikkonen3 dans le forum VB.NET
    Réponses: 3
    Dernier message: 11/10/2008, 18h57

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