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 :

E Vba Recopier la formule sur toute la feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 57
    Par défaut E Vba Recopier la formule sur toute la feuille
    Bonjour,

    Je débute sur macro vba et j'ai besoin de votre aide, en faite ci joint par le tutoriel l'enregistrement de la 1 ere ligne et j'aimerais le recopier pour toutes les lignes du tableau ,commet proceder? CI dessous u fichier attaché excel..Si quelqu'un a une idée de raccourci..merci d'avance

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    Sub rib()
     
        Sheets("RIB EUR (2)").Select
        Range("A12").Select
        Selection.Copy
        Sheets("Feuil2").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Sheets("RIB EUR (2)").Select
        Range("B12").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Feuil2").Select
        Range("E6").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Sheets("RIB EUR (2)").Select
        Range("B15").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Feuil2").Select
        Range("D6").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Sheets("RIB EUR (2)").Select
        Range("C12").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Feuil2").Select
        Range("G6").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Sheets("RIB EUR (2)").Select
        Range("C15").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Feuil2").Select
        Range("H6").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Sheets("RIB EUR (2)").Select
        Range("E13").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Feuil2").Select
        Range("I6").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Sheets("RIB EUR (2)").Select
        Range("E14").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Feuil2").Select
        Range("J6").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Sheets("RIB EUR (2)").Select
        Range("A13").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Feuil2").Select
        Range("C6").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Sheets("RIB EUR (2)").Select
        Range("A14").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Feuil2").Select
        Range("B6").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    End Sub
    Fichiers attachés Fichiers attachés
    • Type de fichier : xls BAC.xls (18,5 Ko, 116 affichages)

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 88
    Par défaut
    salut,
    la feuille "RIB EUR (2)" ne figure pas dans ton classeur joint, ce qui rend difficile à comprendre ce que tu cherches à faire

    1ere remarque : utiliser l'enregistreur de macros c'est très bien, mais apres il faut nettoyer le code résultant, qui est très foisonnant. Ainsi les "select" suivis d'un "selection" peuvent etre supprimés. Ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sheets("RIB EUR (2)").Select
    Range("A12").Select
    Selection.Copy
     
    'se résume en 
    Sheets("RIB EUR (2)").Range("A12").Copy
    2eme remarque : pour ce que tu veux faire, point besoin de Copy/Paste. Tu peux directement demander que la valeur de la cellule cible deviennent celle de la cellule source. Ainsi, le code que tu as fourni se résume en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub rib()
    'remarque : dans le code, la 1ere cellule n'est pas précisée. J'ai mis A6 au hasard
    Sheets("Feuil2").Range("A6").Value = Sheets("RIB EUR (2)").Range("A12").Value
    Sheets("Feuil2").Range("E6").Value = Sheets("RIB EUR (2)").Range("B12").Value
    Sheets("Feuil2").Range("D6").Value = Sheets("RIB EUR (2)").Range("B15").Value
    Sheets("Feuil2").Range("G6").Value = Sheets("RIB EUR (2)").Range("C12").Value
    Sheets("Feuil2").Range("H6").Value = Sheets("RIB EUR (2)").Range("C15").Value
    Sheets("Feuil2").Range("I6").Value = Sheets("RIB EUR (2)").Range("E13").Value
    Sheets("Feuil2").Range("J6").Value = Sheets("RIB EUR (2)").Range("E14").Value
    Sheets("Feuil2").Range("C6").Value = Sheets("RIB EUR (2)").Range("A13").Value
    Sheets("Feuil2").Range("B6").Value = Sheets("RIB EUR (2)").Range("A14").Value
    End Sub
    ensuite, sachant que pour faire référence à une cellule, on peut employer Cells(NumLigne, NumColonne) à la place de Range("Xn"), tu vois qu'en manipulant de manière judicieuse NumLigne et NumColonne, tu pourras parcourir tout ton tableau et traiter toutes les cellules que tu souhaites traiter

    Pour cela, il sera probablement utile d'employer des boucles For...Next (voir aide F1). On peut sans problème faire des boucles à l'intérieur des boucles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 1 to 10
        For j = 4 to 9
        'faire ce qu'il faut faire
        Next j
    next i

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 57
    Par défaut A Nicolas
    Merci, je vais voir ce que je peux faire à ta méthode!

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    J'ai regardé ton fichier, il me parait bizarre quant aux résultats attendus,

    Avec ce que t'a corrigé le petit Nicolas, j'ai fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub rib()
    With Sheets("feuil2")
     
    .Cells(6, 1) = Sheets("feuil1").Cells(12, 1)
    .Cells(6, 2) = Sheets("feuil1").Cells(14, 1)
    .Cells(6, 3) = Sheets("feuil1").Cells(13, 1)
    .Cells(6, 4) = Sheets("feuil1").Cells(15, 2)
    .Cells(6, 5) = Sheets("feuil1").Cells(12, 2)
    .Cells(6, 7) = Sheets("feuil1").Cells(12, 3)
    .Cells(6, 8) = Sheets("feuil1").Cells(15, 3)
    .Cells(6, 9) = Sheets("feuil1").Cells(13, 5)
    .Cells(6, 10) = Sheets("feuil1").Cells(14, 5)
    End With
    End Sub
    Par contre, à ce stade, je ne vois pas où mettre une boucle
    j'ai remis les lignes de code dans l'ordre (par rapport à feuil2), j'ai remarqué (sauf erreur) que . cells(6,6) est absent mais c'est peut-etre voulu

    Bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 57
    Par défaut E Vba Recopier la formule sur toute la feuille
    En fait ce que je voudrais c'est à travers mon tableau du fichier attaché ci haut, c'est faire mettre en colonne les données e ligne dans un onglet appelé Rib les valeurs suivantes:
    FOE
    968
    L4
    l'adresse du beneficiaire
    l'adresse de la banque beneficiaire
    Iban
    Bic

    La partie boucle qui me fcomplique un peu...merci encore!

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    SAlut
    Reprend ton fichier exemple stp, fait un onglet avec situation initial, la feuil1 actuelle je présume, et un onglet avec l'organisation que tu veux obtenir
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

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

Discussions similaires

  1. Recopier une formule sur x lignes
    Par marco361020 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 08/01/2008, 10h07
  2. [VBA-E] Variables globales sur tout un projet
    Par a.dequidt dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/10/2007, 10h48
  3. [VBA-E] - Realiser un "unhide" sur toute une feuille
    Par ekynoxx dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/06/2007, 14h44
  4. [VBA-W] Insérer texte sur toutes mes pages word
    Par STEPH69000 dans le forum VBA Word
    Réponses: 1
    Dernier message: 02/01/2007, 11h54
  5. [VBA-E] Trier les colonnes sur toute la feuille
    Par tro2blabla dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/05/2006, 11h49

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