Copier

Résolu
Signaler
Messages postés
15
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
16 juillet 2010
-
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
-
Bonjour,
je souhaiterais créer une boite de dialogue à insérer dans un programme adin de pouvoir choisir le nombre d'enregistrements à copier dans un classeur et pouvoir ensuite les coller dans un autre classeur.

6 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Bonsoir,

Dim NombEnreg As Integer

NombEnreg = InputBox("Entrer la Limite d'enregistrement", "Sélection")
Range("A2", "C" & NombEnreg).Select

Voila qqch qui pourrait peu etre t'aider

@+
Julien
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
50
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
1 décembre 2015

Je n'ais pas tout compris dans ta question, j'esite a te repondre désoler a +
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,

Je me joint a Orlean2 pour dire:

Explique un peu mieux ton probleme pour avoir une reponse adaptee, tu y gagneras du temps et nous aussi soit dit en passant.

Voili,

@+
Julien
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Bonjour,

Si tu veux dire ouvrir des fichiers .xls pour y coller des
enregistrements, alors voici un code qui ouvre dans ton classeur actif,
les fichiers.xls que tu sélectionnes (Ctrl + Souris).Il te suffis alors
de les ouvrirs et de copier/coller tes enregistrements.

Si ce n'est pas celà, alors tiens toujours le code, il pourra te servir.



Sub OuvreClasseur()

Dim strFiles

Dim xlFiles

Dim blnOuvert As Boolean

Dim strMessage As String

Dim wbk As Workbook

Dim i As Integer

Dim j As Integer



'Affiche la boîte de dialogue Ouvrir

strFiles = Application.GetOpenFilename _

(FileFilter:="Fichiers Excel (*.xls),*.xls", _

Title:="Sélectionnez les fichiers à ouvrir", _

MultiSelect:=True)



'Teste si des fichiers ont été sélectionnés

If TypeName(strFiles) = "Variant()" Then

ReDim xlFiles(UBound(strFiles))

For i = 1 To UBound(strFiles)



'Contrôle l'exention du fichiers

If Right(strFiles(i), 3) = "xls" Then



'Teste si le fichier est déjà ouvert

blnOuvert = False

For Each wbk In Workbooks

If wbk.Path & "" & wbk.Name = strFiles(i) Then

blnOuvert = True

End If

Next wbk



'Stocke le nom de fichiers dans un tableau

If Not blnOuvert Then

j = j + 1

xlFiles(j) = strFiles(i)

strMessage = strMessage & strFiles(i) & vbCr

End If

End If

Next i



'Ouvre tous les fichiers Excel après confirmation

If j > 1 Then

strMessage = "Confirmez-vous l'ouverture des fichiers :" _

& vbCr & strMessage

If MsgBox(strMessage, vbYesNo + vbQuestion) = vbYes Then

For i = 1 To j

Workbooks.Open FileName:=xlFiles(i)

Next i

End If

End If

Else

MsgBox "Aucun fichier sélectionné"

End If

End Sub



jpleroisse



Si une réponse vous convient, cliquez réponse Acceptée.
Messages postés
15
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
16 juillet 2010

Bonjour,


c'est vrai, je n'ai peut être pas été très explicite.


En fait, dans mon programme, selon certains critères,j'ai extrait certaines données dans une plage (allant de a2 à c500), sur une autre feuille. A ce stade de mon programme, je veux copier une partie de ces données ( de a2 à c30 par exemple) dans un autre classeur. Ce qui m'intéresserait c'est qu'une boite de dialogue s'ouvre et me demande "Combien d'enregistrements voulez-vous copier" et que dans cette boite de dialogue, du fait de lui dire "30" il me sélectionne la plage "a2:c30"pour ensuite pouvoir aller coller tout ça dans un autre classeur, ce que j'arrive à faire mais avec la totalité de la plage "A2:c500". De même si je ne veux copier que 24, entrer dans la boite de dialogue 24 et que seule la plage "a2:c24" soit sélectionnée.
Si je ne suis pas encore assez explicite, dites-moi ce qui manque dans l'exposé de mon problème.
Merci d'avance
Messages postés
15
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
16 juillet 2010

Bonjour,


c'est vrai, je n'ai peut être pas été très explicite.


En fait, dans mon programme, selon certains critères,j'ai extrait certaines données dans une plage (allant de a2 à c500), sur une autre feuille. A ce stade de mon programme, je veux copier une partie de ces données ( de a2 à c30 par exemple) dans un autre classeur. Ce qui m'intéresserait c'est qu'une boite de dialogue s'ouvre et me demande "Combien d'enregistrements voulez-vous copier" et que dans cette boite de dialogue, du fait de lui dire "30" il me sélectionne la plage "a2:c30"pour ensuite pouvoir aller coller tout ça dans un autre classeur, ce que j'arrive à faire mais avec la totalité de la plage "A2:c500". De même si je ne veux copier que 24, entrer dans la boite de dialogue 24 et que seule la plage "a2:c24" soit sélectionnée.
Si je ne suis pas encore assez explicite, dites-moi ce qui manque dans l'exposé de mon problème.
Merci d'avance