• Publicité

copier la 1er feuille avec codition et la 2eme feuille sans

Dans ce forum, vous pouvez poser toutes vos questions concernant l'utilisation de logiciels de bureautique (Microsoft Office, Open Office, etc.)

Modérateurs: Sebastien, Stéphane, Christophe

copier la 1er feuille avec codition et la 2eme feuille sans

Messagepar nadia_42 » 14 Nov 2015 15:36

bonjour tous le monde
j'ai un problème concernant copier coller des feuille d'un classeur dans une autre feuille de même classeur
je suis novice dans la vba donc je sais faire des choses et pas d'autres

la ou je bloc c'que je veux copier la 1er feuille ligne par ligne mais avec condition jusqu'a ligne vide
et après copier la 2eme feuille comme elle est tous ca dans la 3eme feuille de même classeur

voila ce sue je veux faire:

Feuil1
------
alain 301 25 0
jean 322 31 0
dupont 406 0 13
nadia 417 0 41
--------------------------

Feuil2
------
ha x 0 40
ho x 0 42
hi x 61 0
he x 44 0
--------------------------

Feuil3
------
alain 301 0 25
jean 322 0 31
dupont 406 13 0
nadia 417 41 0
ha x 0 40
ho x 0 42
hi x 61 0
he x 44 0

je sais que je dois faire une boucle pour la 1er feuille !!!!! mais je ne sais comment

pour tous ceux qui m'aide merci d'avance
et bonne journées :mrgreen:
nadia_42
No0b
No0b
 
Messages: 7
Enregistré le: 14 Nov 2015 15:17

Re: copier la 1er feuille avec codition et la 2eme feuille s

Messagepar Sebastien » 15 Nov 2015 16:31

Bonjour,

nadia_42 a écrit:je sais que je dois faire une boucle pour la 1er feuille !!!!! mais je ne sais comment

Voici un exemple de boucle permettant de copier les lignes de la feuille 1 (jusqu'à ce qu'une ligne vide soit trouvée) et de les coller en feuille 3 :
Code: Tout sélectionner
Sub copie_feuille1()

Dim donnee As String

Sheets("Feuil1").Select
Range("A1").Select
donnee = ActiveCell.Value


Do While donnee <> ""
    ligne = ActiveCell.Row
    Rows(ligne & ":" & ligne).Copy
    Sheets("Feuil3").Select
    Range("A65536").End(xlUp).Offset(1, 0).Select
    ActiveSheet.Paste
    Sheets("Feuil1").Select
    ActiveCell.Offset(1, 0).Select
    donnee = ActiveCell.Value
Loop

End Sub


@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5507
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: copier la 1er feuille avec codition et la 2eme feuille s

Messagepar nadia_42 » 15 Nov 2015 16:58

avec tous mes respect merci sebastien

ce que je n'arrive pas a faire c'est que quand je copie la feuille 1 la colonne C devient la colonne D alors que D devient C dans la feuille 3 selon le cretere exemple : gauche(B...;1)=3 par contre la feuille 2 je la copte sans modefication

MERCI encore de ton aide :mrgreen:
nadia_42
No0b
No0b
 
Messages: 7
Enregistré le: 14 Nov 2015 15:17

Re: copier la 1er feuille avec codition et la 2eme feuille s

Messagepar Sebastien » 15 Nov 2015 17:54

nadia_42 a écrit:ce que je n'arrive pas a faire c'est que quand je copie la feuille 1 la colonne C devient la colonne D alors que D devient C dans la feuille 3

Je n'avais pas vu l'inversion de colonne...

Par contre :
nadia_42 a écrit:selon le cretere exemple : gauche(B...;1)=3

Entre la feuille 1 et la 3, on doit toujours inverser les deux colonnes C et D lors du collage ou bien il y a des cas où on inverse pas (si oui dans quel cas) ?

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5507
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: copier la 1er feuille avec codition et la 2eme feuille s

Messagepar nadia_42 » 15 Nov 2015 18:23

merci pour ta repense

mais ce que je souhaite et que je n'arrive pas a le faire toute seul sans aide
c'est que dans la 1er feuille on a:

Feuil1
------
alain --- 301--- 25 --- 0
jean --- 322 --- 31 --- 0
dupont --- 406 --- 0 --- 13
nadia --- 417--- 0 --- 41
--------------------------

et la 2eme feuille on a:

Feuil2
------
ha --- x --- 0 --- 40
ho --- x --- 0 --- 42
hi --- x --- 61--- 0
he --- x --- 44 --- 0
--------------------------

pour avoir le résultat suivant dans la 3eme feuille

Feuil3
------
alain --- 301 --- 0 --- 25
jean --- 322 --- 0 --- 31
dupont --- 406 --- 13 --- 0
nadia --- 417 --- 41--- 0
ha --- x --- 0 --- 40
ho --- x --- 0 --- 42
hi --- x --- 61 --- 0
he --- x --- 44 --- 0

c'est ca le résultat souhaite
et merci d'avance pour ton aide
nadia_42
No0b
No0b
 
Messages: 7
Enregistré le: 14 Nov 2015 15:17

Re: copier la 1er feuille avec codition et la 2eme feuille s

Messagepar Sebastien » 15 Nov 2015 23:17

Tu trouveras ci-dessous une macro qui va copier les lignes de la feuille 1 et coller en feuille 3. La Macro va inverser les valeurs contenues dans les colonnes C et D (pour les données provenant de la Feuil1 uniquement). La copie des données de la feuille 1 s'arrête dès qu'une ligne vide est trouvée.

Ensuite, elle copie la totalité du tableau présent en feuille 2 et le colle à la suite en feuille 3.

Le code de la macro :
Code: Tout sélectionner
Sub copie_feuil_1et2()

Dim donnee, ColC, colD As String

'COPIE DES DONNEES DE LA FEUILLE 1
Sheets("Feuil1").Select
Range("A1").Select

'Vérification du contenu de la cellule
donnee = ActiveCell.Value

'On boucle tant qu'une cellule vide n'est pas
'trouvée dans la colonne A
Do While donnee <> ""
   
    'On copie a ligne entière
    ligne = ActiveCell.Row
    Rows(ligne & ":" & ligne).Copy
   
    'On va en Feuil3 sur la dernière cellule vide disponible
    'en colonne A
    Sheets("Feuil3").Select
    Range("A65536").End(xlUp).Offset(1, 0).Select
   
    'On colle
    ActiveSheet.Paste
   
    'On inverse les valeurs des colonnes C et D
    ColC = ActiveCell.Offset(0, 2).Value
    colD = ActiveCell.Offset(0, 3).Value
    ActiveCell.Offset(0, 2).Value = colD
    ActiveCell.Offset(0, 3).Value = ColC
   
    'On retourne en Feuil1 et on traite la ligne suivante
    Sheets("Feuil1").Select
    ActiveCell.Offset(1, 0).Select
    donnee = ActiveCell.Value
Loop
'Fin de la boucle

'COPIE DES DONNEES DE LA FEUILLE 2
Sheets("Feuil2").Select

'On se place sur la dernière cellule non vide de la colonne A
Range("A65536").End(xlUp).Select

'On sélectionne la totalité du tableau
Range(Selection, Selection.End(xlUp)).Select
Range(Selection, Selection.End(xlToRight)).Select

'On copie tout le tableau
Selection.Copy

'On va en Feuil3 sur la dernière cellule vide disponible
'en colonne A
Sheets("Feuil3").Select
Range("A65536").End(xlUp).Offset(1, 0).Select

'On colle
ActiveSheet.Paste
 
End Sub


Un fichier avec les données que tu as fournies et la macro insérée dans un module VBA :
https://www.astucesinternet.com/data/images_forum/copie_feuil_1et2.zip

J'ai commenté le code pour expliquer comment ça fonctionne. N'hésite pas à la lancer en mode "pas à pas" pour comprendre son fonctionnement et la tester sur tes données.

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5507
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: copier la 1er feuille avec codition et la 2eme feuille s

Messagepar nadia_42 » 16 Nov 2015 04:29

monsieur sebastien

bonjour le code marche très bien et très commenté, rien a dire a part que vous ete un génie de la Bureautique :twisted:

mais pourquoi la 1er ligne reste vide?

merci pour ton aide :mrgreen: :mrgreen:
nadia_42
No0b
No0b
 
Messages: 7
Enregistré le: 14 Nov 2015 15:17


Retourner vers Forum d'entraide : Bureautique

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités

  • Publicité