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 :

macro dans feuille de calcul


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 8
    Par défaut macro dans feuille de calcul
    Bonjour à tous,

    j'arrive à faire quelques étapes mais pas vraiment à ce que je souhaite.
    Voici un exemple de fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    > River Bin # 39170, Level 6
    290.753612573    -18.1869382773
    290.749996185    -18.1877775235
    290.743327993    -18.1883268482
    > River Bin # 39171, Level 6
    291    -18.594445716
    291    -18.594445716
    > River Bin # 39171, Level 6
    291    -18.594445716
    291.00639353    -18.594445716
    291.013336385    -18.5947203784
    291.020828565    -18.5947203784
    J'aimerais :
    A chaque ligne de caractère texte dans colonne [A] copier cette ligne dans une nouvelle colonne [C] jusqu'à la ligne suivante de caractère texte et ainsi de suite.
    Le résultat souhaité peut ressembler à cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    [A]                       [B]                     [C]
    290.753612573    -18.1869382773   > River Bin # 39170, Level 6
    290.749996185    -18.1877775235   > River Bin # 39170, Level 6
    291                    -18.594445716    > River Bin # 39171, Level 6
    291.00639353      -18.594445716    > River Bin # 39171, Level 6
    291.013336385     -18.5947203784  > River Bin # 39171, Level 6
    J'aimerais donc m'arrêter de copier A dans C avec une condition dans A (condition qui varie).
    Je vous remercie pour vos conseils.
    A+
    Bebert_lama

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonsoir,
    Tu devrais peut être nous monter ce que tu as déjà fait. Et surtout ce qui pourrait nous être utile et nous faciliter la vie en te faisant réfléchir toi a notre place (je sais on est méchant ).
    Un algorithme qui fait ce que tu voudrais faire. Nous après on t'aide a le passer en VBA.
    Sinon tu peux attendre qu'un passant avec un peu de temps a tuer s'intéresse a ton cas pour te donner la macro toutes faite

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 8
    Par défaut
    Bonjour à tous,

    ok pas de pb:

    voici du brut sortie de l'éditeur de script excel:
    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
    22
    23
    24
    25
    26
    27
    28
    29
    Sub Macro1_copier_colonneA_dansD()
    '
    ' Macro2_copier_colonneA_dansD_décalé Macro
     
        Range("A1").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        Range("D2").Select
        ActiveSheet.Paste
    End Sub
     
    Sub Macro2_efface_ligne_vide_colonneB()
        Dim l As Long
        For l = Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
            If Cells(l, "B").Value = "" Then Cells(l, 1).EntireRow.Delete
        Next l
    End Sub
     
     
    Sub Macro2_copier_coller_cellules()
    '
    ' Macro1_copier_coller_cellules Macro
    '
        Range([D2], [A65536].End(xlUp).Offset(0, 2)).Select
        Selection.FillDown
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
    End Sub
    A la place de supprimer une ligne quand une cellule de colonne [B] = vide, j'aimerais trouver mon texte [A] et le coller dans [C] comme dit dans mon premier message (sous condition). Voilà où et comment je galère....
    Merci à toi, et aux passants qui tuent le temps...et aident les petits gens.
    A+

    Bebert

  4. #4
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut Manque d'informations
    le fichier d'origine n'est pas un fichier texte mais dans une feuille de calcul d'après les macro.

    Quelles informations sont dans quelles colonnes ?

    Pourquoi la suppression de ligne entière alors qu'il doit y a voir des valeurs dans toutes les lignes d'après l'exemple d'origine ?

    Une capture d'écran serait plus explicite.

    ESVBA

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 8
    Par défaut
    Bonjour,

    oui ce n'est pas clair voilà une image.
    Non il n'y a pas d'infos sur le reste de la ligne.

    Pour résumer je n'arrive pas à faire un rechercher "texte", puis copier/déplacer "texte" jusqu'à telle cellule....
    ex: couper A1 et le copier de C2:C7 et A8 de C9:C10....ainsi de suite.

    Merci de votre aide.
    Bebert
    Images attachées Images attachées  

  6. #6
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    bonjour,
    une idée d'algo que je te laisse essayer d'adapter

    En quelque ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    pour i allant de la premiere a la dernière ligne
     si la cellule colonne 1ligne i est un texte  alors
         variableTexte=contenue de cells(i,1)
     fin si
     copier le contenue de variableTexte dans la cellule colonne C ligne i
    i suivant
    pour i allant de la derniere a la premiere ligne
    si la cellule ligne i colonne A est un texte alors supprimer la ligne
    i suivant
    On peux faire une seul boucle mais ce que tu veux faire necessite de parcourir de haut en bas et je préfère supprimer de bas en haut pour éviter de toucher a l'indice de ma boucle. Alors a moins que tu ne soit presser on peux essayer comme ca
    Regarde si cela te va et passe el nous en VBA

    ps : "est un texte" revient dans ton cas a "n'est pas un nombre". Regarde l'aide sur isnumeric

Discussions similaires

  1. AA par BB dans feuille de calcul
    Par problemeaide dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 05/10/2012, 10h49
  2. [XL-2010] Creer graphique dans feuille de calcul et non sur nouvelle feuille
    Par bastou93 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/06/2011, 21h54
  3. listbox dans feuille de calcul
    Par pitoumad dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/06/2010, 15h12
  4. [XL-2007] Comment réactiver une Macro dans feuille
    Par Bugzy1963 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/02/2010, 18h29
  5. Réponses: 20
    Dernier message: 22/01/2009, 12h10

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