XL 2016 Extraire des valeurs d'un tableau vers un autre.

Seddiki_adz

XLDnaute Occasionnel
bonjour
besoin d'aide pour extraire des valeurs d'une tableau vers une autre dans une 2ieme feuil suivant la condition en colonne h
merci d'avance
 

Pièces jointes

  • Classeur1.xlsx
    11.9 KB · Affichages: 15
Dernière édition:

Seddiki_adz

XLDnaute Occasionnel
Bonjour Seddiki, le fil,

suite à ton MP, je te propose cette autre version du fichier. :)

* sur les 2 feuilles, j'ai supprimé la colonne A d'en-tête "N"
➯ il n'y a plus la 1ère colonne avec les numéros 1 à 13.

* la copie des données est faite sans condition : j'ai enlevé l'instruction
InputBox, et même la boucle Do .. Loop qui la contenait.

➯ on copie dans les colonnes A à G de "Feuil2" les données
correspondantes de "Feuil1" ; et cela pour toutes les lignes
utilisées
de "Feuil1".



* sur "Feuil2", note que le tableau est vide : y'a aucune donnée.

* va sur "Feuil1", et fais Ctrl e ➯ travail effectué ! 😊

toutes les lignes utilisées du tableau de "Feuil1" ont été copiées
en "Feuil2", pour les valeurs qui y avaient une correspondance.



code VBA de Module1 :

VB:
Option Explicit

Sub CpyData()
  If ActiveSheet.Name <> "Feuil1" Then Exit Sub
  Dim cel As Range, nlm&, n1&, n2&, i&, j&: nlm = Rows.Count
  With Worksheets("Feuil2")
    n1 = Cells(nlm, 1).End(3).Row: If n1 = 8 Then Exit Sub
    n2 = .Cells(nlm, 1).End(3).Row: j = 9: Application.ScreenUpdating = 0
    If n2 > 8 Then .Range("A9:G" & n2).ClearContents
    For i = 9 To n1
      Set cel = Cells(i, 1)
      With .Cells(j, 1)
        .Value = cel                    'A : NOM
        .Offset(, 1) = cel.Offset(, 1)  'B : PRENOM
        .Offset(, 2) = cel.Offset(, 3)  'C : PROFESSION
        .Offset(, 3) = cel.Offset(, 2)  'D : ETABLISSEMENT
        .Offset(, 4) = cel.Offset(, 6)  'E : REGION
        .Offset(, 5) = cel.Offset(, 8)  'F : OBS
        .Offset(, 6) = cel.Offset(, 9)  'G : CONDITION
        j = j + 1
      End With
    Next i
    .Select
  End With
End Sub

soan
Bonjour
voici mon travail mais jai un probleme pour le numero index
 

Pièces jointes

  • Classeur2.011.xlsm
    20.7 KB · Affichages: 2

Seddiki_adz

XLDnaute Occasionnel
@jcf6464

je suppose qu'il ne l'a pas fait car peut-être que le bouton "Modifier" n'était plus visible ? ou peut-être qu'il s'est dit : « si je modifie mon post #1 pour le rendre présentable, les gens vont se demander pourquoi Bruno m'a mis un dislike "En colère" ! alors pour justifier ce dislike, je préfère laisser mon post #1 tel quel ! » ; d'autre part, je crois que Seddiki est un jeune homme qui ne comprends pas bien notre langue : en plus des difficultés de son exo Excel, il a aussi les difficultés de traduction de sa langue en français ; alors il faut savoir être clément, et ne pas l'enfoncer plus que Bruno, qui a été le premier à le critiquer. ;)

soan
bonjour
voici mon essai
 

Pièces jointes

  • Classeur2.011.xlsm
    21.1 KB · Affichages: 3

Seddiki_adz

XLDnaute Occasionnel
@BrunoM45



manque de pot, tu t'es complètement trompé à ce sujet ! 😭 tu ne pouvais pas le savoir, bien sûr, mais c'est moi qui ai envoyé un MP à Seddiki pour lui demander si c'était ok pour son exo Excel, ou s'il avait envie d'une adaptation ; alors bien sûr, il a naturellement répondu à mon MP ! quoi de plus normal ? et c'est que j'ai proposé ma 2ème version du fichier !​

soan
merci pour tous le monde
 

BrunoM45

XLDnaute Barbatruc
@BrunoM45, @jcf6464,

tous les deux, vous avez largement oublié ce post de David Aubert ! 😁

dont cette phrase :

« Œuvrons tous pour faire en sorte que XLD reste un site ouvert et accueillant où il fait bon s'entraider 🤗 »

soan
Soan,
Je n'ai pas oublier, non, mais toi tu sembles oublier qu'un site ouvert et accueillant ne veut pas dire qu'il ne faut pas modifier son 1er post, au contraire 🤔

On arrive sur le forum, voilà ce qu'on voit un post TOUT EN MAJUSCULES
1627039179624.png

Et qui plus est, obtient une réponse de ta part :rolleyes:
Je suis un posteur lambda... je me dis... Ok, pour avoir une réponse il faut mettre son titre en MAJUSCULE

Bref, chacun son point de vue, mais perso, je suis et resterais intransigeant sur ce genre de comportement.

D'ailleurs le tiens finit également par m'agacer... je comprends mieux pourquoi tu te fais virer 😂
En tout cas laisse béton pour ce post, je te mets dans les indésirables à partir de maintenant 👎

Edit : juste pour info, quand on veut vraiment, on peut... Post de 5 mois que je peux modifier... alors 🤔 🤔 🤔
1627039736105.png
 
Dernière édition:

soan

XLDnaute Barbatruc
@Seddiki

autre version du fichier. :)

* sur "Feuil2" : tableau vide

* va sur "Feuil1" ; au choix : fais Ctrl e, ou clique sur le bouton bleu "Copie" ; le résultat est identique : toutes les données adéquates sont copiées en "Feuil2". 😊 (attention : tu avais oublié de mettre le prénom !)

je n'ai pas encore fait l'impression des données dans un fichier, car je veux d'abord savoir si ça te convient ou non ; de plus, comme j'ai vu ton nouveau sujet "bouton d'ipression" (dans lequel sylvanu t'a donné une réponse, que tu as vue), peut-être que tu n'en n'as plus besoin ?​



code VBA de Module1 :

VB:
Option Explicit

Sub CpyData()
  If ActiveSheet.Name <> "Feuil1" Then Exit Sub
  Dim cel As Range, nlm&, n1&, n2&, i&, j&: nlm = Rows.Count
  With Worksheets("Feuil2")
    n1 = Cells(nlm, 2).End(3).Row: If n1 = 8 Then Exit Sub
    n2 = .Cells(nlm, 2).End(3).Row: j = 9: Application.ScreenUpdating = 0
    If n2 > 8 Then .Range("B9:H" & n2).ClearContents
    For i = 9 To n1
      Set cel = Cells(i, 2)
      With .Cells(j, 2)
        .Value = cel                    'B : NOM
        .Offset(, 1) = cel.Offset(, 1)  'C : PRENOM
        .Offset(, 2) = cel.Offset(, 3)  'D : PROFESSION
        .Offset(, 3) = cel.Offset(, 2)  'E : ETABLISSEMENT
        .Offset(, 4) = cel.Offset(, 6)  'F : REGION
        .Offset(, 5) = cel.Offset(, 8)  'G : OBS
        .Offset(, 6) = cel.Offset(, 9)  'H : CONDITION
        j = j + 1
      End With
    Next i
    .Select
  End With
End Sub

soan
 

Pièces jointes

  • Classeur2.02.xlsm
    20.6 KB · Affichages: 4

Seddiki_adz

XLDnaute Occasionnel
@Seddiki

autre version du fichier. :)

* sur "Feuil2" : tableau vide

* va sur "Feuil1" ; au choix : fais Ctrl e, ou clique sur le bouton bleu "Copie" ; le résultat est identique : toutes les données adéquates sont copiées en "Feuil2". 😊 (attention : tu avais oublié de mettre le prénom !)

je n'ai pas encore fait l'impression des données dans un fichier, car je veux d'abord savoir si ça te convient ou non ; de plus, comme j'ai vu ton nouveau sujet "bouton d'ipression" (dans lequel sylvanu t'as donné une réponse, que tu as vue), peut-être que tu n'en n'as plus besoin ?​



code VBA de Module1 :

VB:
Option Explicit

Sub CpyData()
  If ActiveSheet.Name <> "Feuil1" Then Exit Sub
  Dim cel As Range, nlm&, n1&, n2&, i&, j&: nlm = Rows.Count
  With Worksheets("Feuil2")
    n1 = Cells(nlm, 2).End(3).Row: If n1 = 8 Then Exit Sub
    n2 = .Cells(nlm, 2).End(3).Row: j = 9: Application.ScreenUpdating = 0
    If n2 > 8 Then .Range("B9:H" & n2).ClearContents
    For i = 9 To n1
      Set cel = Cells(i, 2)
      With .Cells(j, 2)
        .Value = cel                    'B : NOM
        .Offset(, 1) = cel.Offset(, 1)  'C : PRENOM
        .Offset(, 2) = cel.Offset(, 3)  'D : PROFESSION
        .Offset(, 3) = cel.Offset(, 2)  'E : ETABLISSEMENT
        .Offset(, 4) = cel.Offset(, 6)  'F : REGION
        .Offset(, 5) = cel.Offset(, 8)  'G : OBS
        .Offset(, 6) = cel.Offset(, 9)  'H : CONDITION
        j = j + 1
      End With
    Next i
    .Select
  End With
End Sub

soan
merci bq
 

Discussions similaires

Réponses
3
Affichages
194
Réponses
6
Affichages
330
Réponses
2
Affichages
192

Membres actuellement en ligne

Statistiques des forums

Discussions
290 974
Messages
1 911 776
Membres
177 382
dernier inscrit
Cdrik4
Haut Bas