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 :

Actualiser Données VBA [XL-2003]


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
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2011
    Messages : 115
    Par défaut Actualiser Données VBA
    Bonjour tout le monde !

    J'ai un onglet "events" dans lequel il y a les colonnes de A jusqu'à G qui se remplissent a partir de la ligne 2 avec des données issues d'un fichier texte externe.

    J'utilise actuellement une commande basique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Workbook_Open()
    ActiveWorkbook.RefreshAll
    End Sub
    Comme ça au lancement du fichier ça s'actualise automatiquement depuis mon fichier texte qui lui change tout le temps.
    Seulement je suis confronté a plusieurs problèmes :

    ->Durant cette actualisation il me demande toujours l'emplacement de mon fichier texte. Comment je peux faire pour lui définir un emplacement fixe pour ne plus avoir de message ?

    -> dans mes colonnes H et I, j'ai 2 formules en haut que je souhaite étendre tout le long de ces colonnes. Actuellement je sélectionne les 2 cases, et double clique sur le petit carré noir qui se met en dessous a droite de la sélection pour qu'il s’étende sur les 2 colonnes.

    ->J'aimerai supprimer toutes les lignes qui contiennent un certain mot dans une certaine colonne, par exemple si j'ai "alain dupont" en A2, que je ne veux pas de "dupont" dans mon tableau. comment je peux m'y prendre ?

    Si quelqu'un peut un peu m'aider ce serai sympa ! merci d'avance

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,

    Pour le rafraichissement des données, pas besoin de VBA.
    Passe par l'onglet Données, près du bouton de rafraichissement tu verra le bouton paramètres qui t'ouvre une fenêtre.
    Dans cette fenêtre, décoche la troisième case en partant du haut (je suis en version anglaise, je ne suis pas certain du nom en français...) 'Demander le nom quand rafraichit'
    Et pour éviter le VBA, coche la 5ème case en partant du haut 'Rafraichir les données à l'ouverture'

    Pour les autres points, vois le code ci-dessous, je pense avoir mis assez de commentaire pour que ce soit compréhensible.
    Tu dois bien entendu adapter certaines variables selon ton fichier, bonne continuation

    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
    18
    19
    20
    21
    Sub CleanRows()
    Dim Ws As Worksheet
    Dim DerLig As Long, R As Long
    Dim RefMot As String
    Dim RefCol As Byte
     
    Set Ws = Sheets("LeNomDeTaFeuille") 'Remplace par le nom exacte de la feuille qui contient les données
    RefMot = "LeMotQuiDetermineLaSuppression" 'Utilise la variable RefMot pour déterminer le mot qui indique si il faut supprimer la ligne
    RefCol = 4 'Indique le numéro de colonne (ici D) qui contient les mots à comparer à RefMot
     
    DerLig = Ws.Cells(Ws.Cells.Count, 1).End(xlUp).Row 'Détermine le nombre de lignes utilisées
     
    For R = DerLig To 2 Step -1 'Boucle de la dernière ligne à la deuxième
        Ws.Cells(R, 8) = Ws.Cells(2, 8) '"Copie" le contenu de la cellule H2 dans la cellule H suivant la boucle
        Ws.Cells(R, 9) = Ws.Cells(2, 9) '"Copie" le contenu de la cellule I2 dans la cellule I suivant la boucle
     
        If Ws.Cells(R, RefCol) = RefMot Then 'Compare le mot de référence au mot contenu dans la cellule selon la boucle
            Ws.Cells(R, RefCol).EntireRow.Delete 'Supprime la ligne si la comparaison renvoi vrai
        End If
    Next R
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2011
    Messages : 115
    Par défaut
    bonjour et merci pour ton aide, a vrai dire je ne m'attendai pas a une réponse si complète !
    Je vais regarder ton code et en tirer meilleur parti en te remerciant !!
    Bonne journée a toi

    Edit : J'obtiens une erreur sur cette ligne avec le code 1004 "erreur definie par l'application ou par l'objet" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DerLig = Ws.Cells(Ws.Cells.Count, 1).End(xlUp).Row
    Edit 2 : j'ai trouvé la source du problème, j'ai remplacé Ws.Cells.Count par 65000.
    Par contre je remarque que ma formule de H et I n’évolue plus en fonction de la ligne..
    voici le contenu de H2 et I2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    pour H2
    =SI(OU(ESTVIDE(A2));"";MOIS(A2)&-ANNEE(A2))
    et I2 
    =SI(OU(ESTVIDE(F2));"";SI(ESTNUM(CHERCHE("%";F2));" dépassement";F2))
    par évoluer je veux dire que par exemple a la ligne 150 il y aura A150 et F150 dans les formules
    J'ai aussi un soucis au moment ou il recherche le mot pour supprimer la ligne, il faut que j’écris exactement le contenu de la case, et non seulement un mot.
    Je regarde si j'ai pas loupé un truc. merci pour tout encore !!!!

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

Discussions similaires

  1. Actualisation donnée apres delete
    Par GillesT60 dans le forum Bases de données
    Réponses: 4
    Dernier message: 05/03/2008, 12h14
  2. Réponses: 29
    Dernier message: 08/06/2007, 16h33
  3. Changement de base de données = vba incompatible
    Par schuitonzo dans le forum Access
    Réponses: 22
    Dernier message: 22/02/2007, 16h46
  4. [SGBD]Actualiser données provenant d'une base de données
    Par ducker88 dans le forum Accès aux données
    Réponses: 6
    Dernier message: 11/01/2007, 14h44
  5. [VBA-E]replacement données excel par données VBA
    Par plante.douce dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/04/2006, 20h23

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