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 :

Stocker nombre trouvé par une macro [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 25
    Par défaut Stocker nombre trouvé par une macro
    Bonjour,

    Je bloque sur la mise en place de ma macro,
    je souhaite trouver jusqu'à quelle ligne A les cellules sont remplies donc j ai trouver cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub boucle()
    '
    ' boucle Macro
    '
    Dim Lig As Long
     
    Lig = Sheets("CA + MARGE par client").Range("A3").End(xlDown).Row
    MsgBox Lig
    End Sub
    (Je ne sais pas utiliser la mise en forme de code sur le forum par contre.)
    Au final suite à la valeur trouver grace à cette macro je voudrais stocker le nombre pour mettre en place une autre macro sur les lignes contenant du texte par exemple si il me trouve 20 j'aurais ma nouvelle macro qui se fera à chaque fois jusqu'à cette ligne.

    Merci je sais pas si c'est bien clair par contre je débute.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub boucle()
    '
    ' boucle Macro
    '
    Dim Lig As Long
     
    Lig = Sheets("CA + MARGE par client").range("A" & cells.Rows.Count).End(xlUp).Row+1
    Sheets("CA + MARGE par client").Range("A" & lig)="toto"
    End Sub
    surligne la totalité de ton code et click sur #

  3. #3
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut
    Bonjour,

    Sinon tu assigne une variable à cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim lastLine as single
    lastLine = Sheets("CA + MARGE par client").range("A" & cells.Rows.Count).End(xlUp).Row+1
    Et après tu continue tes macro avec la variable lastLine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim lastLine as single
    lastLine = Sheets("CA + MARGE par client").range("A" & cells.Rows.Count).End(xlUp).Row+1
     
    'Do some stuff with lastLine
     
    msgbox lastLine
    Sheets("CA + MARGE par client").Range("A" & lastLine)="toto"
    debug.print lastLine

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 25
    Par défaut
    Citation Envoyé par Nico Chg Voir le message
    Bonjour,

    Sinon tu assigne une variable à cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim lastLine as single
    lastLine = Sheets("CA + MARGE par client").range("A" & cells.Rows.Count).End(xlUp).Row+1
    Et après tu continue tes macro avec la variable lastLine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim lastLine as single
    lastLine = Sheets("CA + MARGE par client").range("A" & cells.Rows.Count).End(xlUp).Row+1
     
    'Do some stuff with lastLine
     
    msgbox lastLine
    Sheets("CA + MARGE par client").Range("A" & lastLine)="toto"
    debug.print lastLine
    Je vais essayer merci de votre aide

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 25
    Par défaut
    Merci pour la mise en forme.

    Sinon le code que vous m'avez mis stocke la valeur dans "toto" ?

  6. #6
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut
    TON code stock la valeur dans Lig.

    Le code de rdurupt va écrire "toto" dans la dernière ligne de la colonne A

    Le mien va afficher une fenêtre avec le numéro de la dernière ligne, va écrire "toto" dans la dernière ligne de la colonne A, et va écrire le numéro de la dernière ligne dans la console. A toi de voir ce que tu veux faire après.

  7. #7
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 128
    Par défaut nombre de lignes
    bonjour,

    Ton code est tout bon, tu as tout écrit pour utiliser le nombre de lignes dans des boucles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub boucle()
    Dim Lig As Long
     
    Lig = Sheets("CA + MARGE par client").Range("A3").End(xlDown).Row
    'Lig prend comme valeur le numéro de la dernière ligne avec des valeurs en partant de A3
     
    End Sub

    Dans ce cas, tu as simplement à définir en début de module (hors de ta Sub boucle) ta variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Lig As Long
     
    Sub maSub()
    Lig = Sheets("CA + MARGE par client").Range("A3").End(xlDown).Row
    End Sub
    Et là, tu as ta variable Lig qui vaut 20 (comme dans ton exemple), tu peux l'utiliser directement dans d'autres Sub:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub boucle2()
     
    For i=1 to Lig
    Sheets("CA + MARGE par client").Range("B" & i).Value = "Ligne " & i 
    'on aura en colonne B: Ligne 1, Ligne 2 etc ... jusqu'à Ligne 20 
    Next i
     
    End Sub

    Voilà !

  8. #8
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 25
    Par défaut
    Arf je sèche un peu pour utiliser tout ca pour faire par exemple cela à la suite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Range("D3").Select
        ActiveCell.FormulaR1C1 = "=RC[-1]/RC[-2]"
        Range("D3").Select
        Selection.AutoFill Destination:=Range("D3:D20"), Type:=xlFillDefault
        Range("D3:D20").Select
        Selection.Style = "Percent"
        Selection.NumberFormat = "0.0%"
        Selection.NumberFormat = "0.00%"
    En remplacant bien entendu le D20 par D(ligne trouvée précedemment).

  9. #9
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        Range("D3").FormulaR1C1 = "=RC[-1]/RC[-2]"
        Range("D3").AutoFill Destination:=Range("D3:D" & Lig), Type:=xlFillDefault
        With Range("D3:D" & Lig)
        .Style = "Percent"
        .NumberFormat = "0.0%"
        .NumberFormat = "0.00%"
        End With
    Que c'est beau l'enregistreur de macro ...

  10. #10
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 25
    Par défaut
    Citation Envoyé par Nico Chg Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        Range("D3").FormulaR1C1 = "=RC[-1]/RC[-2]"
        Range("D3").AutoFill Destination:=Range("D3:D" & Lig), Type:=xlFillDefault
        With Range("D3:D" & Lig)
        .Style = "Percent"
        .NumberFormat = "0.0%"
        .NumberFormat = "0.00%"
    Que c'est beau l'enregistreur de macro ...
    Merci et en effet belle invention pour débuter.

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

Discussions similaires

  1. [XL-2003] Par Macro, décortiquer chiffres ou nombres séparés par une virgule
    Par malabarbe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/07/2011, 20h46
  2. Imprimer un graph par une macro
    Par man_coef dans le forum Général VBA
    Réponses: 2
    Dernier message: 10/10/2006, 11h28
  3. Réponses: 3
    Dernier message: 14/04/2006, 10h43
  4. lancer une sub par une macro
    Par ganizate dans le forum Access
    Réponses: 2
    Dernier message: 04/04/2006, 15h01
  5. [Excel] Utiliser une application externe par une macro
    Par thierry2.dlp dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2005, 22h07

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