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 :

Copier et coller entre 2 mots


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Par défaut Copier et coller entre 2 mots
    Bonjour à tous,

    Voici ma VBA à modifier, car là je sèche.

    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
    Sub Copier() 
    Dim source As Workbook, dest As Workbook, n%, cellule As Range 
    On Error Resume Next 
    Set source = Workbooks("Recupe_Resultat.xlsm") 'à adapter 
    Set dest = Workbooks("model_prono.xlsm") 'à adapter 
    If Err Then MsgBox "Les 2 fichiers 'Recupe' et 'model' doivent être ouverts...": Exit Sub 
    On Error GoTo 0 
    If source.Worksheets.Count <> dest.Worksheets.Count Then MsgBox "Le nombre des feuilles de calcul n'est pas le même !", 48: Exit Sub 
     
    For n = 1 To source.Worksheets.Count 
        For Each cellule In ActiveSheet.Range("a:a") 
            If cellule.Value = "*Jeu*" Then 
                source.Worksheets(n).Range(cellule & ":D62").Copy dest.Worksheets(n).Range("Ay43") 
            End If 
     
        Next 
        'End If 
    Next 
     
    End Sub
    je récupère des information web sur 30 feuilles et je vais les coller dans un autre classeur.
    le soucis c'est que les informations que je recherche ne sont pas toujours dans les même cellules
    donc je voudrais à partir d'un mot pour le début et un autre pour la fin (ces mots sont toujours les mêmes)
    à partir du mot "Jeu Simple" et "2 sur 4" copier les 3 colonnes (a,b,c) pour les coller dans l'autre classeur.

    merci à vous


    bien à vousNom : Capture.PNG
Affichages : 235
Taille : 26,2 Ko

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2013
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2013
    Messages : 122
    Par défaut Copier coller entre 2 mots
    Bonjour

    Pour rechercher les adresses (ligne, colonne) des cellules contenant des mots, regarder ici:

    https://docs.microsoft.com/fr-fr/off...cel.range.find

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Par défaut
    oui merci cela je l'avait bien compris , mais si je fait appel a un forum c que je suis perdu

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Par défaut
    Citation Envoyé par fraflt69 Voir le message
    Bonjour

    Pour rechercher les adresses (ligne, colonne) des cellules contenant des mots, regarder ici:

    https://docs.microsoft.com/fr-fr/off...cel.range.find
    oui merci , si je fait appel au forum c que je suis perdu .

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Guismo33 Voir le message
    For n = 1 To source.Worksheets.Count
    For Each cellule In ActiveSheet.Range("a:a")
    Ton For To ne va pas changer la feuille active.
    De plus, le For Each va scruter toutes les cellules de la colonne A, y compris celles qui ne sont pas utilisées. Il va donc en scruter environ 1 million de trop.

    Pour ces deux raisons, il serait plus propre d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim WS As Worksheet
     
    For Each WS In Worksheets 
        For Each cellule In Intersec(WS.Columns(1), WS.UsedRange)
    If cellule.Value = "*Jeu*" Then
    Si les * sont utilisés pour caractères génériques, ça ne fonctionnera pas avec un simple =.
    Il serait préférable d'utiliser la fonction InStr() > 0 pour faire ce type de test.
    https://docs.microsoft.com/fr-fr/off...instr-function

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    source.Worksheets(n).Range(cellule & ":D62")
    Il serait plus propre d'utiliser Resize pour définir cette référence.
    Je suis très étonné de ton "62". Il est rare qu'on utilise une référence ligne fixe quand on doit copier une zone après une recherche sur les lignes.
    Mais comme ton explication ne permet pas de comprendre ce que tu souhaites faire réellement, difficile de savoir s'il faut le corriger et comment.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Par défaut
    Citation Envoyé par fraflt69 Voir le message
    Bonjour

    Pour rechercher les adresses (ligne, colonne) des cellules contenant des mots, regarder ici:

    https://docs.microsoft.com/fr-fr/off...cel.range.find
    Citation Envoyé par Menhir Voir le message
    Ton For To ne va pas changer la feuille active.
    De plus, le For Each va scruter toutes les cellules de la colonne A, y compris celles qui ne sont pas utilisées. Il va donc en scruter environ 1 million de trop.

    Pour ces deux raisons, il serait plus propre d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim WS As Worksheet
     
    For Each WS In Worksheets 
        For Each cellule In Intersec(WS.Columns(1), WS.UsedRange)

    Si les * sont utilisés pour caractères génériques, ça ne fonctionnera pas avec un simple =.
    Il serait préférable d'utiliser la fonction InStr() > 0 pour faire ce type de test.
    https://docs.microsoft.com/fr-fr/off...instr-function


    Il serait plus propre d'utiliser Resize pour définir cette référence.
    Je suis très étonné de ton "62". Il est rare qu'on utilise une référence ligne fixe quand on doit copier une zone après une recherche sur les lignes.
    Mais comme ton explication ne permet pas de comprendre ce que tu souhaites faire réellement, difficile de savoir s'il faut le corriger et comment.
    Bonjour,

    merci je vais essayer de changer la donne , je reviens vers vous.
    merci encore


    bien à vous

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/07/2016, 08h45
  2. [XL-2013] VBA: Copier Excel / Coller Access
    Par sharkantipav dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/02/2014, 23h22
  3. Réponses: 5
    Dernier message: 15/03/2007, 06h58
  4. [VBA-E]échec copier-coller entre 2classeurs
    Par touche_a_tout dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 06/12/2006, 23h22
  5. VBA-E: Pb copier-coller entre Excel et .csv
    Par tiger118 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/06/2006, 11h08

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