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 :

Debutant sur du VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2014
    Messages : 78
    Par défaut Debutant sur du VBA
    Bonjour à tous,

    Je viens de me mettre au VBA sur EXCEL (1h), et je suis bloqué sur un petit truc que j'arrive pas à comprendre je m'explique

    Sur la Colonne 1 je voudrais par exemple faire un test ou sur chaque cellule si y a une redondance je supprime la cellule sinon je passe

    Si j'ai bien compris le truc en code sa donne sa ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub test()
     
    n = 1
    If Cells(n, 1) = Cells(n + 1, 1) Then Cells(n, 1).Delete
    Else n = n + 1
    End If
    End Sub
    Quand j'essaie d’exécuter on me dit que L'instruction Else sans IF ( erreur de compilation )
    suis-je vraiment à l'ouest ?

  2. #2
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Cells(n, 1) = Cells(n + 1, 1) Then Cells(n, 1).Delete
    C'est un IF sans Elsesur une seule ligne

    Là tu dois juste mettre à la ligne apres le Thenet apres le Else:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test() 
       n = 1
       If Cells(n, 1) = Cells(n + 1, 1) Then
          Cells(n, 1).Delete
       Else
          n = n + 1
       End If
    End Sub

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Bonjour,

    Bon apprentissage .... C'est formateur
    En version plus rapide, vous pouvez utiliser l'équivalent VBA au Excel: Range.RemoveDuplicate comme (non testé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Test2
     
    Dim InpRng As Range
     
    Set InpRng = ActiveSheet.Range("A1").CurrentRegion.Columns(1)
    Debug.Print  InpRng.Address, InpRng.Rows.Count
     
    Set InpRng = InpRng.RemoveDuplicate
    Debug.Print  InpRng.Address, InpRng.Rows.Count
     
    End Sub

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2014
    Messages : 78
    Par défaut
    Merci Antony ça marche très j'avais mal compris la syntaxe du coup

    vinc_bilb

    Ah oui ça m’intéresse ce genre de proposition je savais pas qu'il y avait ce genre de fonction !!! parce que le but c'est de parcourir toute la colonne et de supprimer toute valeurs répéter ! et si j'ai bien compris cette fonction prédéfinie "RemoveDuplicate" sert automatiquement à faire sa ! je teste et je te fais un retour

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par samybelarbi Voir le message
    parce que le but c'est de parcourir toute la colonne et de supprimer toute valeurs répéter !
    Pour ça, il faudra que tu t'intéresses aux boucles. Regarde dans l'aide VBA d'Excel les utilisation et syntaxe de :
    For to
    For Each
    While
    Loop

    Les boucles, c'est la base et l'une des principales raisons d'être des macros sous Excel.

    Petit conseil aussi : quand on supprime des lignes, il est plus pratique de partir du bas et de remonter.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
     
    For n = Cells(1,1).End(xlDown).Row to 2 Step -1
       If Cells(n, 1) = Cells(n - 1, 1) Then Cells(n, 1).Delete
    Next n
     
    End Sub
    Les puristes diront qu'il aurait mieux valut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For n = Cells(Rows.Count,1).End(xlUp).Row to 2 Step -1
    Mais la formulation précédente sera sans doute plus facile à comprendre pour un débutant.

Discussions similaires

  1. [XL-2010] Debuts sur VBA, remplacer toutes les cellules >0 par 1 sur Excel 2010
    Par labjo14 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/04/2014, 16h35
  2. Debutant sur le compilateur Dev-C
    Par Krizalid007 dans le forum Dev-C++
    Réponses: 16
    Dernier message: 28/06/2007, 10h10
  3. Vrai debutant sur VBA
    Par cumpa dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/05/2007, 16h07
  4. Probleme d'enregistrement sur Macro/VBA de Excel
    Par life is magic dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/11/2005, 17h23
  5. [langage] Renseignement pour débuter sur perl
    Par freeshman dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2004, 23h47

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