A voir également:
- Copier les résultats d'une recherche dans un autre classeur2
- Copier une vidéo youtube - Guide
- Recherche musique - Guide
- Super copier - Télécharger - Gestion de fichiers
- Google recherche par image - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
11 réponses
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
Modifié par f894009 le 16/05/2015 à 08:20
Modifié par f894009 le 16/05/2015 à 08:20
Bonjour,
lo = wsExcel.Range(wsExcel.Range("a6"), wsExcel.Range("a6").End(xlDown)).Row 'ou plus simple lo = wsExcel.Range("A65535").End(xlUp).Row
oui je suis vraiment Désolé , je voulais dire que les données soient copiés dans la feuille "Achats" du classeur2 . les informations qui sont représentés dans le code par les variables : d, Combobox1.text, Textbox3.text , aa ,bb ; je les trouve dans le fichier classeur1 où il existe le code , et je veux que ces informations soient copiés dans un autre classeur2 dans un tableau dans la feuille "Achats " dans les colonnes A , C , H ,F ,G .
J'ai essayer d'ajouter à la fin
J'ai essayer d'ajouter à la fin
wbExcel.Close, cela marche mais lorsque le classeur2 est ouvert il me demande à chaque fois d' enregistrer le classeur 2 avec un autre nom . Moi je veux que ces données soient copiés directement dans les places que j'ai mentionné dans la feuille "Achats" classeur2 à chaque fois que j'utilise ma Useform. J'espère que ça soit claire . merci
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
16 mai 2015 à 11:58
16 mai 2015 à 11:58
Re,
essayez ceci:
par contre comprens pas le lo=lo+6
essayez ceci:
par contre comprens pas le lo=lo+6
Private Sub CommandButton1_Click() Dim d As Date Dim s As String Dim l As Integer Dim aa As Double Dim bb As Double Dim a As Integer Dim b As Integer Dim cost As Boolean Dim r As String Dim i As Integer s = ComboBox1.Text Select Case s Case Is = "52s" Worksheets("52 W").Activate Case Is = "2A" Worksheets("2 ans").Activate Case Is = "5A" Worksheets("5 ans").Activate Case Is = "10A" Worksheets("10 ans").Activate Case Is = "15A" Worksheets("15 ans").Activate Case Is = "20A" Worksheets("20 ans").Activate Case Is = "30A" Worksheets("30 ans").Activate Case Else End Select d = TextBox2.Text Range("b1").Value = d l = Range(Range("a14"), Range("a14").End(xlDown)).Count cost = False For i = 1 To l If Range("a" & 13 + i).Value = r Then aa = Range("c" & 13 + i).Value bb = Range("d" & 13 + i).Value cost = True 'i = l + 1 Exit For End If Next i If cost = False Then MsgBox ("Verifier le taux1") Else Dim appExcel As Excel.Application 'Application Excel Dim wbExcel As Excel.Workbook 'Classeur Excel Dim wsExcel As Excel.Worksheet 'Feuille Excel 'Ouverture de l'application Set appExcel = CreateObject("Excel.Application") 'Ouverture d'un fichier Excel Set wbExcel = appExcel.Workbooks.Open("C:\Users\sossso\Desktop\\classeur2.xls") 'wsExcel correspond à la première feuille du fichier Set wsExcel = wbExcel.Worksheets("Achats") Dim lo As Long lo = wsExcel.Range(wsExcel.Range("a6"), wsExcel.Range("a6").End(xlDown)).Row lo = lo + 6 wsExcel.Range("a" & lo).Value = d wsExcel.Range("c" & lo).Value = ComboBox1.Text wsExcel.Range("h" & lo).Value = TextBox3.Text wsExcel.Range("f" & lo).Value = aa wsExcel.Range("g" & lo).Value = bb Application.DisplayAlerts = False wbExcel.Close True Application.DisplayAlerts = True Set wbExcel = Nothing Set appExcel = Nothing End If End Sub
la commande
En fait votre code n'a pas marché aussi :( .Avez vous une autre solution que je peux utiliser . par exemple une commande comme
lo = wsExcel.Range(wsExcel.Range("a6"), wsExcel.Range("a6").End(xlDown)).Row, indique le fait que les données doivent etre enregister à partir de la ligne vide , c'est seulement pour indiquer la position .
lo = lo + 6
En fait votre code n'a pas marché aussi :( .Avez vous une autre solution que je peux utiliser . par exemple une commande comme
wbExcel.Close, n'existe pas un truc comme ça pour enregistrement , je sais pas par exemple
wbExcel.Save. Aidez moi Svp
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
16 mai 2015 à 16:10
16 mai 2015 à 16:10
Re,
si vous voulez simplement enregistrer, oui, un wbExcel.save ira
si vous voulez simplement enregistrer, oui, un wbExcel.save ira
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Normalement je veux que les données que j'ai trouvé dans classeur 1 soient copiés dans classeur 2 , j'ai essayé avec
wbExcel.savemais ça n'a pas marché
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
16 mai 2015 à 16:25
16 mai 2015 à 16:25
Re,
Y a maldonne, copier les donnees c'est ce code:
enregistrer la classeur c'est celui-ci:
donc un peu de reflection avant d'ecrire ..............
Y a maldonne, copier les donnees c'est ce code:
wsExcel.Range("a" & lo).Value = d wsExcel.Range("c" & lo).Value = ComboBox1.Text wsExcel.Range("h" & lo).Value = TextBox3.Text wsExcel.Range("f" & lo).Value = aa wsExcel.Range("g" & lo).Value = bb
enregistrer la classeur c'est celui-ci:
wbExcel.save
donc un peu de reflection avant d'ecrire ..............
Moi ce que je veux c'est les données soient copiés , mais lorsque j'exécute le code :
les données ne se copient pas , alors où est le problème ?
wsExcel.Range("a" & lo).Value = d
wsExcel.Range("c" & lo).Value = ComboBox1.Text
wsExcel.Range("h" & lo).Value = TextBox3.Text
wsExcel.Range("f" & lo).Value = aa
wsExcel.Range("g" & lo).Value = bb
les données ne se copient pas , alors où est le problème ?
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
16 mai 2015 à 16:56
16 mai 2015 à 16:56
Re,
mettez un point d'arret a cette ligne:
lancez votre macro, des que le programme s'arrete, passez le curseur de la souris sur lo pour voir sa valeur
mettez un point d'arret a cette ligne:
wsExcel.Range("a" & lo).Value = d
lancez votre macro, des que le programme s'arrete, passez le curseur de la souris sur lo pour voir sa valeur
je l'ai fais , la valeur de lo est 466 . et c'est exactement le numéro de la ligne qui est vide dans le classeur2 où je veux copier mes données . donc le principe pour lequel j'ai met la variable lo est juste . mais comment je peux résoudre mon problème qui est de copier les informations dans cette ligne vide ?
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
Modifié par f894009 le 16/05/2015 à 19:21
Modifié par f894009 le 16/05/2015 à 19:21
Re,
deplacez le point d'arret vers ligne
et regardez ce qu'il y a dans les variables et objets les lignes precedentes
deplacez le point d'arret vers ligne
Application.DisplayAlerts = False
et regardez ce qu'il y a dans les variables et objets les lignes precedentes
Merci pour votre aide . mon problème est résolu . j'ai remplacer
par :
Merci encore pour votre aide :)
Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
'Set wbExcel = appExcel.Workbooks.Open("C:\Users\sossso\Desktop\classeur2.xls")
'wsExcel correspond à la première feuille du fichier
'Set wsExcel = wbExcel.Worksheets("Achats")
par :
Set wbExcel = Workbooks("classeur2.xls")
'wsExcel correspond à la première feuille du fichier
Set wsExcel = wbExcel.Worksheets("Achats")
Merci encore pour votre aide :)
16 mai 2015 à 11:15
Merci pour votre proposition mais normalement , J'ai essayé ça mais c'est la même chose , le problème c'est qu'il manque quelque chose à la fin du code . J'ai essayer de mettre à la fin , cela marche mais lorsque le classeur2 est ouvert il me demande à chaque fois d' enregistrer le classeur 2 avec un autre nom . Moi je veux que ces données soient copiés directement dans les places que j'ai mentionné dans la feuille "marketing" classeur2 à chaque fois que j'utilise ma Useform. Qu'est ce que vous me proposez ? et merci
16 mai 2015 à 11:20
dans la feuille "marketing" classeur2 z'etes sur car dans le code c'est pas ca
le problème c'est qu'il manque quelque chose à la fin du code Surement, mais dites ce que vous voulez clairement