Copier une plage de donnée variable

Bonjour à toutes et tous,

Voici mon problème,

Je souhaiterais écrire un code VBA qui me permette de copier une plage de mesure qui peut être variable, Je veux Copier

des données qui se trouvent dans les colonnes E, F dans la feuille NoteCondidat et coller Dans les colonnes F, G dans la feuille Base.

Nota: Les Noms dans feuille NoteCondidat classé par Moyenne, et dans feuille Base classé par ordre numéro d'inscription.

Veuillez voir la pièce ci-jointe pour plus de renseignements.

Merci à vous par avance.

Cordialement

5testv2.xlsm (45.32 Ko)

Bonjour zinlamri,

Peut-on copier-coller la plage ou faut-il "matcher" les ID ?

ric

bonjour,

il faut aussi copier & coller un des 2 premières colonnes. Si vous transformez vos données en un tableau structure, les couleurs et les bordures sont aussi en ordre. Pour sorter, alors c'est un numéro, lequel ?

Sub CopierColler()
     With Sheets("NoteCondidat")
          Set c = Intersect(.Range("B3").CurrentRegion, .Columns("D:E"))
          If c.Rows.Count <= 1 Then MsgBox "erreur": Exit Sub
     End With

     With Sheets("Base").Range("D" & Rows.Count).End(xlUp).Offset(1).Resize(c.Rows.Count - 1)
          .Value = c.Offset(1).Value
          .Offset(, 2).Value = c.Offset(1, 1).Value
     End With
End Sub

Bonjour à vous ric, BsAlv

Merci beaucoup tout d'abord de vous êtes investis pour m'aider.

Je n'ai malheureusement pas avancé malgré vos écrits.

J’aimerais bien garder même structure de mon fichier car il relier avec d’autres feuilles.

Bonjour zinelamri, BsAlv, le forum,

BsAlv a soumis un excellent code ... mais il enregistrait en dessous du tableau de la feuille "Base".

Cette version adaptée de ce code ... écrit dans le tableau de la "Base" ... je crois que c'était ce que tu escomptais ...

ric

13testv3.xlsm (33.11 Ko)

Note à BsAlv : désolé d'avoir manqué ton anniversaire ... à la miaaoouuu ...

Bonsoir à tous,

Bonsoir ric

Merci ric pour ton aide.

Ç’est exactement ce que je voulais, Cela fonctionne parfaitement et j'ai compris ta solution, merci !!

Merci beaucoup

Cordialement,

Bonjour zinelamri, BsAlv, le forum,

C'est BsAlv qui a fait le gros du travail ... il ne faut pas manquer de le remercier lui aussi ...

D'ailleurs BsAlv utilise des méthodes que j'aimerai bien maîtriser un jour ...

A+

ric

Bonjour RIC, BsAlv, le forum,

Merci à vous deux, Merci à celui qui a écrit et merci à celui qui a corrigé.

Aamicalement

bonsoir,

merci pour les compléments.

Note à BsAlv : désolé d'avoir manqué ton anniversaire ... à la miaaoouuu ...

Mon anniversaire est mi-septembre, c'est une blaque que je ne comprend pas ?

Bonjour BsAlv, le forum,

Ton avatar de chat ... l'anniversaire des chats est à la mi-août .... miiaaoouuu ... le miaulement d'un chat ...

C'est une blague que je répandais dans les écoles primaires parmi les petits ...

Une autre : Qui a inventé les mitaines ? ... ... ... ... ... Un humain ... un nu main ...

Je cesse avant de me faire réprimander ...

Regarde bien ... mon âne rit ... mon ânerie ...

D'accord ... je m'en vais prendre mes médicaments pour me calmer ...

A+

ric

ReBonjour RIC, BsAlv, le forum,

petit problème

Il faut gardé le classemrnt des Noms par Ordre Dans feuille Base ,le changement dans colonnes Moyenne & Obs seulement.

Pourriez-vous m'indiquer comment faire?

Merci beaucoup

capture

Bonjour zinelamri, le fil, le forum,

Il faut donct placer les notes et Obs en regard des "N_Con" et "Nom prénom" ??

ric

un simple formule avec rechercheV ?

Bonjour à tous,

Ou bien trier le tableau de la feuille "NoteCandidat" avant de copier ...

ric

Bonjour à tous,

Ou encore la méthode longue ...

Sub Bouton1_Cliquer()
Dim B As Integer, Nc As Integer, WsNc As Worksheet, WsB As Worksheet, DligB As Integer, DligNc As Integer

    Set WsNc = Worksheets("NoteCandidat")  '' << dans ton fichier exemple ... c'est "NoteCondidat" ...
    Set WsB = Worksheets("Base")

    DligNc = WsNc.Cells(Rows.Count, "C").End(xlUp).Row
    DligB = WsB.Cells(Rows.Count, "C").End(xlUp).Row

    Application.ScreenUpdating = False

    For Nc = 4 To DligNc
        For B = 4 To DligB
            If WsNc.Cells(Nc, "C").Value = WsB.Cells(B, "C").Value Then
                WsB.Range(WsB.Cells(B, "F"), WsB.Cells(B, "G")).Value = WsNc.Range(WsNc.Cells(Nc, "E"), WsNc.Cells(Nc, "F")).Value
                Exit For
            End If
        Next B
    Next Nc
End Sub

ric

Bonjour a tous

Toutes mes excuses, Je me suis peut-être mal exprimé.

Merci a tous pour votre aide et présence.

j'espere vs rencontrez bientot dans de nouvelles discussions.

Cordialement

Rechercher des sujets similaires à "copier plage donnee variable"