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 :

Supprimer une cellule qui contient une information


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Supprimer une cellule qui contient une information
    Bonjour,

    j'ai un petit problème, j'aurais besoin de vous pour le régler.
    Je dois copier des informations d'un PDF sur Excel, jusqu'à la aucun problème.
    Mais après je dois supprimer des informations inutile, j'ai une cellule qui comporte à chaque fois "(xxx kg)"

    (si kg ce trouve dans la cellule
    alors supprimer ligne entière de la colonne A)


    j'ai essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Sup_kg()
      Dim rcel As Range
          Range("A:A").Select
          For Each rcel In Selection
              If rcel.Value = "kg" Then
                 rcel.EntireRow.Delete
           End If
          Next rcel
    End Sub
    mais vue qu'il y a des caractères avant et après "kg" le code ne fonctionne pas.

    pourriez vous m'aider please.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Regardes du coté de la fonction InStr.

    Philippe

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    J'ai trouver la solution.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Suppression()
        Dim rcel As Range
            Range("A:A").Select
            For Each rcel In Selection
                If rcel.Value Like "*kg*" Then
                    rcel.EntireRow.Delete
                End If
            Next rcel
    End Sub
    j'ai rajouter Like et "*" du coup quant il trouve une cellule avec "kg" il supprime la ligne.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Par contre j'ai un deuxième petit problème, j'aimerais renvoyer à la ligne une suite de caractère.

    Je m'explique. J'ai 44 caractère et j'aimerais qu'après le 29ème caractère le reste sois envoyer à la ligne et la je sais pas comment écrire ce code.

    ou une autre solution qui peut être envisageable c'est que les caractères à renvoyer à la ligne suivante sont après un */* mais sa ce complique car il y a 2 */* dans ma suite de caractère.

    ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    25Q12 - 1536/9 8-02-01441-1 / 16528 (21 pcs)
    j'aimerais après le 2ème / le reste soit envoyer à la ligne suivante.


    Merci d'avance pour votre aide.

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 922
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Qu'entends-tu par envoyer à la ligne ?
    A la ligne suivante de la feuille ou à la ligne suivante à l'intérieur de la cellule ?
    Si c'est le deuxième cas, il faut utiliser la constante vbLf pour faire le saut de ligne.
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub texte()
     Dim myStr As String
     myStr = "Mon texte est*/*trop long*/*A la ligne"
     Range("A1") = Replace(myStr, "*/*", vbLf)
    End Sub
    Tu peux aussi couper après x caractères et ajouter vbLf

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Désoler de pas avoir précisé. c'est à la ligne suivante et non à la ligne dans la même cellule.

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 922
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Citation Envoyé par florianc31 Voir le message
    Désoler de pas avoir précisé. c'est à la ligne suivante et non à la ligne dans la même cellule.
    Et bien voilà un petit exemple à adapter selon tes besoins
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub DecoupeTexte()
     Dim myText() As String, Text As String, r As Long
     Dim rng As Range: Set rng = ThisWorkbook.Worksheets("Feuil1").Range("A2")
     Text = "De l 'Art poétique (1674)*/*Hâtez-vous lentement, et sans perdre courage,*/*Vingt fois sur le métier remettez votre ouvrage,*/*Polissez-le sans cesse, et le repolissez,*/*Ajoutez quelquefois, et souvent effacez. (Chant I)*/*Nicolas Boileau"
     myText() = Split(Text, "*/*")
     For r = 0 To UBound(myText): rng.Offset(r) = myText(r): Next
    End Sub

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Bonjour, merci pour votre réponse.

    le souci est que le "Text" est différent à chaque fois pour mon cas, on ne retrouvera jamais les mêmes valeurs à l'exception des 2 */*.

    je vous mets, un extrait de la feuil excel

    Merci d'avance du temps consacré à vos réponse.
    Fichiers attachés Fichiers attachés

  9. #9
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 922
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je t'ai donné la réponse à ta question à savoir écrire sur plusieurs lignes dans un cas particulier.
    Maintenant à toi d'écrire les phases de tests avec des If ou Select Case en calculant le nombre de caractères d'une chaîne (fonction - Len(chaine)) ou comparer les x caractères de gauche (Left) ou de droite (Right).
    A lire le tuto Manipuler les chaînes de caractères en VB6 et VBA Excel
    Si tu ne t'en sors pas, tu ouvres une nouvelle discussion.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/05/2015, 09h11
  2. Verrouiller une cellule (qui contient une liste) si j+30
    Par micnac dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 27/05/2014, 14h12
  3. Réponses: 7
    Dernier message: 26/05/2014, 08h39
  4. Réponses: 0
    Dernier message: 04/08/2010, 14h02
  5. comment afficher une cellule qui contient une formule, dans textbox
    Par cali59 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/08/2009, 00h07

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