Rechercher première ligne vide d'un fichier et ecrire
Résolu/Fermé
Baloo24700
Messages postés
14
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
31 mars 2015
-
11 avril 2013 à 09:35
baloo24 - 22 mai 2013 à 13:26
baloo24 - 22 mai 2013 à 13:26
A voir également:
- Rechercher première ligne vide d'un fichier et ecrire
- Rechercher ou entrer l'adresse - Guide
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Comment réduire la taille d'un fichier - Guide
43 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
15 avril 2013 à 15:43
15 avril 2013 à 15:43
Bon, pour faire simple, complète les informations ci dessous:
Ce que tu veux copier se trouve dans le fichier B (celui qui est fermé au départ) :
1- Nom de ce fichier avec l'extension (ex : Classeur1.xlsx)
2- Chemin d'accès à ce fichier (ex : C:/User/MonNom/Travail/Fichiers Excel/) [si tu veux anonymiser ce chemin remplace ce qui doit l'être par des xxxxx, tu feras l'inverse dans le code]
3- Nom de la feuille ou se trouvent les données à importer
4- Adresse des cellules à importer (ex : AN7:BG7)
Tu veux copier ces données dans le fichier A (celui qui est ouvert au départ) :
5- ou? Si j'ai bien compris, tu veux copier les données à importer dans la première ligne vide à partir de la colonne A, confirme le.
6- subsidiaire : est ce obligatoire, pour toi, d'ouvrir le fichier B?
Si je me trompe sur toute la ligne, réponds moi en indiquant exactement ton souhait.
Ce que tu veux copier se trouve dans le fichier B (celui qui est fermé au départ) :
1- Nom de ce fichier avec l'extension (ex : Classeur1.xlsx)
2- Chemin d'accès à ce fichier (ex : C:/User/MonNom/Travail/Fichiers Excel/) [si tu veux anonymiser ce chemin remplace ce qui doit l'être par des xxxxx, tu feras l'inverse dans le code]
3- Nom de la feuille ou se trouvent les données à importer
4- Adresse des cellules à importer (ex : AN7:BG7)
Tu veux copier ces données dans le fichier A (celui qui est ouvert au départ) :
5- ou? Si j'ai bien compris, tu veux copier les données à importer dans la première ligne vide à partir de la colonne A, confirme le.
6- subsidiaire : est ce obligatoire, pour toi, d'ouvrir le fichier B?
Si je me trompe sur toute la ligne, réponds moi en indiquant exactement ton souhait.
Baloo24700
Messages postés
14
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
31 mars 2015
11 avril 2013 à 15:15
11 avril 2013 à 15:15
Merci Mike-31 de votre réponse ! Alors pour tenter d'être plus clair :
a) dans le fichier A j'ai des cellules avec infos (ex : A4; C7; L25; G6 etc...)
b) j'aimerai que la macro :
- ouvre le fichier B
- se positionne sur la première ligne vide de B (par exemple la ligne 47) et inscrive A47=A4, B47=C7, C47=L25, D47=G6 etc ...)
Ai-je été plus clair ? Merci d'avance de votre aide,
A+, Baloo
a) dans le fichier A j'ai des cellules avec infos (ex : A4; C7; L25; G6 etc...)
b) j'aimerai que la macro :
- ouvre le fichier B
- se positionne sur la première ligne vide de B (par exemple la ligne 47) et inscrive A47=A4, B47=C7, C47=L25, D47=G6 etc ...)
Ai-je été plus clair ? Merci d'avance de votre aide,
A+, Baloo
Mike-31
Messages postés
18313
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 avril 2024
5 073
11 avril 2013 à 19:57
11 avril 2013 à 19:57
Re,
Je découvre ta réponse , ce qui me gène c'est que les cellule à copier ne sont pas contiguës
ex : A4; C7; L25; G6 etc...)
on peut écrire un code relativement court pour copier les lignes de A4 à G26 ou les lignes 4, 7, 25, 6, etc mais pour copier une cellule par ci par la, il va falloir trouver un élément commun déclencheur
Peux tu mettre ton fichier à notre disposition que l'on voit sa structure, que tu peux joindre avec ce lien
https://www.cjoint.com/
Je découvre ta réponse , ce qui me gène c'est que les cellule à copier ne sont pas contiguës
ex : A4; C7; L25; G6 etc...)
on peut écrire un code relativement court pour copier les lignes de A4 à G26 ou les lignes 4, 7, 25, 6, etc mais pour copier une cellule par ci par la, il va falloir trouver un élément commun déclencheur
Peux tu mettre ton fichier à notre disposition que l'on voit sa structure, que tu peux joindre avec ce lien
https://www.cjoint.com/
Baloo24700
Messages postés
14
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
31 mars 2015
13 avril 2013 à 08:37
13 avril 2013 à 08:37
Bonjour et merci Mike-31 pour votre réponse mais je ne comprends rien à rien ! Boeuf je suis, boeuf je reste ....
Cependant suite à votre remarque, j'ai créé sur A une ligne qui rapatrie les infos dispersées sur la feuille de A.
Maintenant je coince sur le fait de faire écrire cette ligne créée sur la première ligne vide de B ...
Vous serait-il possible de m'adresser le code complet pour opérer cette macro ? désolé de vous paraître aussi nul mais je ne connais pas du tout le vba et pensais que c'était plus simple ... Mais j'ai un besoin urgent because je dois présenter ce fichier à mes boss jeudi !!!Pour l'envoi des fichiers, délicat car dossier pro et de plus + de 5 MO ...
d'avance merci et excellente journée sous le soleil ... j'espère pour Vous !
Baloo
Cependant suite à votre remarque, j'ai créé sur A une ligne qui rapatrie les infos dispersées sur la feuille de A.
Maintenant je coince sur le fait de faire écrire cette ligne créée sur la première ligne vide de B ...
Vous serait-il possible de m'adresser le code complet pour opérer cette macro ? désolé de vous paraître aussi nul mais je ne connais pas du tout le vba et pensais que c'était plus simple ... Mais j'ai un besoin urgent because je dois présenter ce fichier à mes boss jeudi !!!Pour l'envoi des fichiers, délicat car dossier pro et de plus + de 5 MO ...
d'avance merci et excellente journée sous le soleil ... j'espère pour Vous !
Baloo
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mike-31
Messages postés
18313
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 avril 2024
5 073
13 avril 2013 à 22:08
13 avril 2013 à 22:08
Salut,
Je pense que le mieux est de commencer par mettre à notre disposition ton fichier sans notes confidentielles.
Pour cela commence par cliquer sur ce lien
https://www.cjoint.com/
Ensuite sur parcourir, puis sur créer le lien. Un lien sera généré en haut de la page, colle le dans un prochain post de la discussion
Je pense que le mieux est de commencer par mettre à notre disposition ton fichier sans notes confidentielles.
Pour cela commence par cliquer sur ce lien
https://www.cjoint.com/
Ensuite sur parcourir, puis sur créer le lien. Un lien sera généré en haut de la page, colle le dans un prochain post de la discussion
Baloo24700
Messages postés
14
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
31 mars 2015
15 avril 2013 à 09:18
15 avril 2013 à 09:18
Bonjour Mike 31 !
Désolé mais je ne peux pas mettre ces fichiers en ligne car pro et de plus j'aurai plus de temps à défaire les liens car sur des serveurs différents et à "banaliser" les fichiers. Mais je repose ma dernière question :
Après avoir "recentré" sur une seule ligne toutes les infos que je veux transférer du fichier A vers le fichier B, je demandais simplement le code complet pour assurer ce transfert. Merci de votre aide. Bien sincèrement,
Désolé mais je ne peux pas mettre ces fichiers en ligne car pro et de plus j'aurai plus de temps à défaire les liens car sur des serveurs différents et à "banaliser" les fichiers. Mais je repose ma dernière question :
Après avoir "recentré" sur une seule ligne toutes les infos que je veux transférer du fichier A vers le fichier B, je demandais simplement le code complet pour assurer ce transfert. Merci de votre aide. Bien sincèrement,
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
15 avril 2013 à 10:04
15 avril 2013 à 10:04
Bonjour
Vu le poids de 5 Mo, solution sans ouvrir le classeur source: remplacer source.xls par le nom réel
macro dans le classeur cible
Demo:
https://www.cjoint.com/c/CDpkdfdn58T
Vu le poids de 5 Mo, solution sans ouvrir le classeur source: remplacer source.xls par le nom réel
macro dans le classeur cible
Sub lire_ferme() Dim chemin As String ligvide = Cells.Find("*", , , , , xlPrevious).Row + 1 chemin = ThisWorkbook.Path ' A ADAPTER For cptr = 1 To 4 Cells(ligvide, 3) = ExecuteExcel4Macro("'" & chemin & "\[source.xls]Feuil1'!R1C1") 'R1C1=A3 Cells(ligvide, 4) = ExecuteExcel4Macro("'" & chemin & "\[source.xls]Feuil1'!R2C2") Cells(ligvide, 5) = ExecuteExcel4Macro("'" & chemin & "\[source.xls]Feuil1'!R5C3") '=C5 Cells(ligvide, 6) = ExecuteExcel4Macro("'" & chemin & "\[source.xls]Feuil1'!R7C4") Next End Sub
Demo:
https://www.cjoint.com/c/CDpkdfdn58T
Baloo24700
Messages postés
14
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
31 mars 2015
15 avril 2013 à 10:34
15 avril 2013 à 10:34
Merci Michel, je teste et vous tient au courant ! Bonne journée à Vous !
Baloo24700
Messages postés
14
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
31 mars 2015
15 avril 2013 à 13:44
15 avril 2013 à 13:44
Bonjour à Toutes et Tous !
Toujours coincé par cette macro ...
Voilà le code que j'ai transcris ! Merci de votre aide :
Sub CodifOpe()
'
' CodifOpe Macro
'Selection de la ligne à copier
LigneSource = ThisWorkbook.Sheets("Prospect").Range("AN7:BG7").End(xlUp).Row
'Ouverture du fichier destination
Workbooks.Open Filename:="X:\EROLA\Opérations.xlsx"
ActiveWindow.SplitRow = 0
Application.FormulaBarHeight = 12
Application.FormulaBarHeight = 1
'Recherche de la première ligne vide Opérations
LigneDestination = Sheets("Patrimoine").Range("B").End(xlUp).Row + 1
'Ecrire ligne sur Opérations
ThisWorkbook.Sheets("Patrimoine").Rows(LigneSource).Copy
Workbooks("Erola-6.xlsx").Sheets("Prospect").Range ("B" & LigneDestination)
End Sub
Toujours coincé par cette macro ...
Voilà le code que j'ai transcris ! Merci de votre aide :
Sub CodifOpe()
'
' CodifOpe Macro
'Selection de la ligne à copier
LigneSource = ThisWorkbook.Sheets("Prospect").Range("AN7:BG7").End(xlUp).Row
'Ouverture du fichier destination
Workbooks.Open Filename:="X:\EROLA\Opérations.xlsx"
ActiveWindow.SplitRow = 0
Application.FormulaBarHeight = 12
Application.FormulaBarHeight = 1
'Recherche de la première ligne vide Opérations
LigneDestination = Sheets("Patrimoine").Range("B").End(xlUp).Row + 1
'Ecrire ligne sur Opérations
ThisWorkbook.Sheets("Patrimoine").Rows(LigneSource).Copy
Workbooks("Erola-6.xlsx").Sheets("Prospect").Range ("B" & LigneDestination)
End Sub
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
15 avril 2013 à 13:49
15 avril 2013 à 13:49
Excuse moi d'avoir essayé de t'aider
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
15 avril 2013 à 13:52
15 avril 2013 à 13:52
Bonjour à tous,
Désolé pour l'incruste, je ne fais que passer...
tu ne serais pas en train de confondre source et destination???
Relis ton code tranquillement...
LigneSource = ThisWorkbook.Sheets("Prospect").blablabla
Or tu copies (lignesource) dans la feuille patrimoine :
ThisWorkbook.Sheets("Patrimoine").Rows(LigneSource).Copy
LigneDestination = Sheets("Patrimoine").blablabla
Or tu colles (lignedestination) dans la feuille prospect :
Workbooks("Erola-6.xlsx").Sheets("Prospect").Range ("B" & LigneDestination)
N'y aurait il pas confusion?
Désolé pour l'incruste, je ne fais que passer...
tu ne serais pas en train de confondre source et destination???
Relis ton code tranquillement...
LigneSource = ThisWorkbook.Sheets("Prospect").blablabla
Or tu copies (lignesource) dans la feuille patrimoine :
ThisWorkbook.Sheets("Patrimoine").Rows(LigneSource).Copy
LigneDestination = Sheets("Patrimoine").blablabla
Or tu colles (lignedestination) dans la feuille prospect :
Workbooks("Erola-6.xlsx").Sheets("Prospect").Range ("B" & LigneDestination)
N'y aurait il pas confusion?
Baloo24700
Messages postés
14
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
31 mars 2015
15 avril 2013 à 14:17
15 avril 2013 à 14:17
Bonjour Pijaku !
Je ne comprends pas votre remarque désolé ...
Ma sélection à copier ligne source se trouve dans Erola feuille Prospect de la cellule AN7 à BG7.
LigneSource = ThisWorkbook.Sheets("Prospect").Range("AN7:BG7").End(xlUp).Row
la première ligne vide de destination se trouve dans Opérations feuille Patrimoine
LigneDestination = Sheets("Patrimoine").Range("B").End(xlUp).Row + 1
et j'aimerai que la copie se fasse à partir de la colonne B ...
Où me serai-je planté ? Je comprends plus rien ! Merci d'avance
Je ne comprends pas votre remarque désolé ...
Ma sélection à copier ligne source se trouve dans Erola feuille Prospect de la cellule AN7 à BG7.
LigneSource = ThisWorkbook.Sheets("Prospect").Range("AN7:BG7").End(xlUp).Row
la première ligne vide de destination se trouve dans Opérations feuille Patrimoine
LigneDestination = Sheets("Patrimoine").Range("B").End(xlUp).Row + 1
et j'aimerai que la copie se fasse à partir de la colonne B ...
Où me serai-je planté ? Je comprends plus rien ! Merci d'avance
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
Modifié par pijaku le 15/04/2013 à 14:31
Modifié par pijaku le 15/04/2013 à 14:31
1- as tu essayé le code de Michel_M?
2- si oui, comment l'as tu adapté?
3- Est ce que le code de Michel_M fonctionne?
4- S'il ne "fonctionne pas", dis nous ce qui ne te va pas et ce que surligne (en jaune) le débogage.
5- dans mon précédent message, je te dis simplement que tu as inversé ta source et ta destination... Relis ton code.
Et, puisque tu ne sembles pas habitué des forums :
6- lorsque tu obtiens une réponse, si tu n'arrives pas à la faire fonctionner, demande des précisions à celui qui t'as aidé. Ne passes pas d'une aide à une autre sans tenir compte des avis qui ont précédés.
Pour info Mike31 et michel_m sont des pontes en VBA Excel (entres autres).
2- si oui, comment l'as tu adapté?
3- Est ce que le code de Michel_M fonctionne?
4- S'il ne "fonctionne pas", dis nous ce qui ne te va pas et ce que surligne (en jaune) le débogage.
5- dans mon précédent message, je te dis simplement que tu as inversé ta source et ta destination... Relis ton code.
Et, puisque tu ne sembles pas habitué des forums :
6- lorsque tu obtiens une réponse, si tu n'arrives pas à la faire fonctionner, demande des précisions à celui qui t'as aidé. Ne passes pas d'une aide à une autre sans tenir compte des avis qui ont précédés.
Pour info Mike31 et michel_m sont des pontes en VBA Excel (entres autres).
Baloo24700
Messages postés
14
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
31 mars 2015
15 avril 2013 à 15:28
15 avril 2013 à 15:28
Pijaku, Michel et Mickaël
Désolé d'avoir froissé quique ce soi ce n'était pas mon intention ... Veuillez accepter mes plus plates excuses ... et l'invitation tien toujours !!!
Pour revenir à mon souci et ma découverte du fonctionnement d'un forum, j'ai parlé de 5Mo de fichiers (un ensemble de 3 fichiers liés).
Pijaku, oui je viens de tester le code de Michel M ... J'ai juste un problème c'est que mon fichier A (Erola) est ouvert lorsque je lance le code de Michel qui ouvre le fichier B. Ce qui fait qu'il m'ouvre l'explorateur a la recherche d'un fichier A à ouvrir alors qu'il l'est déjà en fait ...
Mon idée initiale était qu'en lançant le fichier Erola dans lequel je saisis une foultitude d'infos, je puisse rapatrier à travers une macro sur le fichier B (Opérations) une synthèse d'une dizaine de cellules ... C'était "tout" en fait ... Mais pour moi d'une complexité extrême ! Merci de votre aide !
Désolé d'avoir froissé quique ce soi ce n'était pas mon intention ... Veuillez accepter mes plus plates excuses ... et l'invitation tien toujours !!!
Pour revenir à mon souci et ma découverte du fonctionnement d'un forum, j'ai parlé de 5Mo de fichiers (un ensemble de 3 fichiers liés).
Pijaku, oui je viens de tester le code de Michel M ... J'ai juste un problème c'est que mon fichier A (Erola) est ouvert lorsque je lance le code de Michel qui ouvre le fichier B. Ce qui fait qu'il m'ouvre l'explorateur a la recherche d'un fichier A à ouvrir alors qu'il l'est déjà en fait ...
Mon idée initiale était qu'en lançant le fichier Erola dans lequel je saisis une foultitude d'infos, je puisse rapatrier à travers une macro sur le fichier B (Opérations) une synthèse d'une dizaine de cellules ... C'était "tout" en fait ... Mais pour moi d'une complexité extrême ! Merci de votre aide !
Baloo24700
Messages postés
14
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
31 mars 2015
15 avril 2013 à 16:02
15 avril 2013 à 16:02
On va y arriver ... je pense sauf que c'est l'inverse, ce que je veux copier est dans A (Erola-6.xslm) !
a) C'est le fichier A (Erola) qui comporte les infos que je veux copier qui est ouvert donc pour répondre à vos questions dans l'ordre :
1- Nom : Erola-6.xslm
2- Chemin : "X:/Partage/Erola/Erola-6.xslm"
3- Nom de la Feuille : "Prospect"
4- Plage des cellules à exporter : "Prospect" (AN7:BG7)
5- Nom du Fichier de destination : Opérations.xslx
5'- Feuille : "Patrimoine"
Plage du fichier où doivent être copiées (ou importer) les cellules : de la colonne B(première ligne vide) à la colonne U(première ligne vide)
6- Oui je suis obligé d'ouvrir le fichier "Opérations.xslx" car j'ai des infos à consulter.
Ai-je été plus clair ? D'avance merci ! Cordialement,
JPierre
a) C'est le fichier A (Erola) qui comporte les infos que je veux copier qui est ouvert donc pour répondre à vos questions dans l'ordre :
1- Nom : Erola-6.xslm
2- Chemin : "X:/Partage/Erola/Erola-6.xslm"
3- Nom de la Feuille : "Prospect"
4- Plage des cellules à exporter : "Prospect" (AN7:BG7)
5- Nom du Fichier de destination : Opérations.xslx
5'- Feuille : "Patrimoine"
Plage du fichier où doivent être copiées (ou importer) les cellules : de la colonne B(première ligne vide) à la colonne U(première ligne vide)
6- Oui je suis obligé d'ouvrir le fichier "Opérations.xslx" car j'ai des infos à consulter.
Ai-je été plus clair ? D'avance merci ! Cordialement,
JPierre
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
15 avril 2013 à 16:29
15 avril 2013 à 16:29
Chemin du fichier de destination (Opération.xlsx)? (obligatoire pour l'ouvrir)?
Baloo24700
Messages postés
14
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
31 mars 2015
15 avril 2013 à 16:34
15 avril 2013 à 16:34
Désolé je comprends votre question ? C'est le nom du fichier et son extension ! Merci !
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
15 avril 2013 à 16:47
15 avril 2013 à 16:47
Non, son répertoire, son chemin d'accès, par exemple :
Chemin : "X:/Partage/Erola/Erola-6.xslm"
Chemin : "X:/Partage/Erola/Erola-6.xslm"
D'accord ! Alors le chemin
"Y/Partage/Opérations/Opérations.xslx"
Est-ce votre attente ? Merci quand même de votre aide !
Bonne soirée et bien sincèrement
JPierre
"Y/Partage/Opérations/Opérations.xslx"
Est-ce votre attente ? Merci quand même de votre aide !
Bonne soirée et bien sincèrement
JPierre
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
16 avril 2013 à 09:09
16 avril 2013 à 09:09
Bonjour,
Ma proposition du jour, à placer dans le Classeur Erola et à tester :
Ma proposition du jour, à placer dans le Classeur Erola et à tester :
Sub exporter() Dim FichierA As Workbook, FichierB As Workbook, Lign As Long, Tb() Set FichierA = ThisWorkbook Tb = FichierA.Sheets("Prospect").Range("AN7:BG7").Value ' !!! A ADAPTER \ au lieu de / il me semble... Set FichierB = Workbooks.Open("Y:/Partage/Opérations/Opérations.xslx") With FichierB With .Sheets("Patrimoine") Lign = .Range("B" & Rows.Count).End(xlUp).Row + 1 .Range("B" & Lign).Resize(1, UBound(Tb, 2)) = Tb End With End With End Sub
Bonjour Franck et Merci ! Cela fonctionne bien avec le code suivant :
Sub CodifOp()
'
'a) je souhaite copier la plage AN7:BG7 de la feuille "Prospect" du fichier "Erola".
'b) vers la plage (B(première ligne vide) à U(première ligne vide)) de la feuille
'"Patrimoine" du fichier "Opérations".
' CodifOpe Macro
Dim Wks As Worksheet
Dim LigneDestination As Long
Set Wks = ThisWorkbook.Sheets("Prospect")
'Ouverture du fichier destination
Workbooks.Open Filename:="X:\EROLA\Opérations.xlsx"
'Recherche de la première ligne vide Opérations
LigneDestination = Sheets("Patrimoine").Cells(Rows.Count, "B").End(xlUp).Row + 1
'Ecrire ligne sur Opérations
Wks.Range("AN7:BG7").Copy
Sheets("Patrimoine").Range("B" & LigneDestination).PasteSpecial Paste:=xlPasteValues
End Sub
Par contre, sans vouloir abuser, est-il possible d'introduire une notion de recherche si cette copie de cellules n'a pas déjà été faite, ceci afin d'éviter les doublons dans Opérations ? D'avance merci pour Tout
Sub CodifOp()
'
'a) je souhaite copier la plage AN7:BG7 de la feuille "Prospect" du fichier "Erola".
'b) vers la plage (B(première ligne vide) à U(première ligne vide)) de la feuille
'"Patrimoine" du fichier "Opérations".
' CodifOpe Macro
Dim Wks As Worksheet
Dim LigneDestination As Long
Set Wks = ThisWorkbook.Sheets("Prospect")
'Ouverture du fichier destination
Workbooks.Open Filename:="X:\EROLA\Opérations.xlsx"
'Recherche de la première ligne vide Opérations
LigneDestination = Sheets("Patrimoine").Cells(Rows.Count, "B").End(xlUp).Row + 1
'Ecrire ligne sur Opérations
Wks.Range("AN7:BG7").Copy
Sheets("Patrimoine").Range("B" & LigneDestination).PasteSpecial Paste:=xlPasteValues
End Sub
Par contre, sans vouloir abuser, est-il possible d'introduire une notion de recherche si cette copie de cellules n'a pas déjà été faite, ceci afin d'éviter les doublons dans Opérations ? D'avance merci pour Tout
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
16 avril 2013 à 09:54
16 avril 2013 à 09:54
sans vouloir abuser
Sans vouloir abuser à mon tour, est il possible d'avoir toutes les informations dès maintenant?
Pour comparer les doublons, encore faut il savoir quelles données comparer...
Si la comparaison, par exemple, de la cellule AN7 avec toute la colonne B de la feuille Patrimoine suffit à éviter les doublons, s'il faut, a contrario, comparer toutes les cellules de AN7:BG7 avec le contenu des cellules de la feuille Patrimoine.........
Sans vouloir abuser à mon tour, est il possible d'avoir toutes les informations dès maintenant?
Pour comparer les doublons, encore faut il savoir quelles données comparer...
Si la comparaison, par exemple, de la cellule AN7 avec toute la colonne B de la feuille Patrimoine suffit à éviter les doublons, s'il faut, a contrario, comparer toutes les cellules de AN7:BG7 avec le contenu des cellules de la feuille Patrimoine.........
Oui bien sûr ... Désolé mais j'ai du mal à fonctionner sur le forum ... Il est bien évident que vous n'êtes pas dans ma réflexion .. Il faut que je m'y fasse ! Encore mille excuses !
Donc les cellules à comparer sont les cellules AN7,AO7,AP7,AE7 d'Erola-6.xlsm avec respectivement les colonnes B,C, D, E d'Opérations.xlsx !
D'avance merci de votre aide !
Donc les cellules à comparer sont les cellules AN7,AO7,AP7,AE7 d'Erola-6.xlsm avec respectivement les colonnes B,C, D, E d'Opérations.xlsx !
D'avance merci de votre aide !
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
16 avril 2013 à 11:09
16 avril 2013 à 11:09
Combien de lignes comporte la feuille Patrimoine du fichier Opérations.xlsx aujourdhui? combien de lignes à terme?
687 lignes occupées aujourd'hui toute la feuille à terme .... excel 2007 soit 1 048 576 ... si possible !
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
16 avril 2013 à 11:48
16 avril 2013 à 11:48
ok.
Bon alors mon bon conseil du jour : n'utilise pas Excel.
Pour exemple, un fichier, possédant une feuille remplit de données (de type string avec un max de 9 caractères dans les cellules) sur 20 colonnes et 1 000 000 de lignes, "pèse" 86,1 Mo (90 335 903 octets). Je viens de tester.
Rien que pour enregistrer une petite modif, avec mon pc qui est pourtant une foudre de guerre, j'en ai eu pour plus de 45 secondes.....
A ouvrir, manipuler d'autres fichiers, tout cela via un réseau... C'est le plantage assuré!
Pour faire ce que tu souhaites, utilise une véritable base de données, pas un classeur Excel.
Bon alors mon bon conseil du jour : n'utilise pas Excel.
Pour exemple, un fichier, possédant une feuille remplit de données (de type string avec un max de 9 caractères dans les cellules) sur 20 colonnes et 1 000 000 de lignes, "pèse" 86,1 Mo (90 335 903 octets). Je viens de tester.
Rien que pour enregistrer une petite modif, avec mon pc qui est pourtant une foudre de guerre, j'en ai eu pour plus de 45 secondes.....
A ouvrir, manipuler d'autres fichiers, tout cela via un réseau... C'est le plantage assuré!
Pour faire ce que tu souhaites, utilise une véritable base de données, pas un classeur Excel.
Après réflexion ... non 2000 lignes maxi ... Cela fera 10 ans et d'ici là la quille j'espère !!! Et toute la boite bosse sur Excel ... Alors je suis obligé d'y mordre malgré mes nombreuses sollicitations à changer !
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
Modifié par pijaku le 16/04/2013 à 12:15
Modifié par pijaku le 16/04/2013 à 12:15
Je ne suis pas là cet aprème, donc une solution demain.
Par contre, passer de 1000000 de lignes à 2000 c'est radical!
Ah oui, j'oubliais, n'y a t'il pas une erreur ici :
Donc les cellules à comparer sont les cellules AN7,AO7,AP7,AE7 d'Erola-6.xlsm avec respectivement les colonnes B,C, D, E d'Opérations.xlsx !
AE7??? Pas AQ7 par hasard???............
Par contre, passer de 1000000 de lignes à 2000 c'est radical!
Ah oui, j'oubliais, n'y a t'il pas une erreur ici :
Donc les cellules à comparer sont les cellules AN7,AO7,AP7,AE7 d'Erola-6.xlsm avec respectivement les colonnes B,C, D, E d'Opérations.xlsx !
AE7??? Pas AQ7 par hasard???............
Oui ... C'est moi qui avait m... par contre je n'ai pas le résultat escompté ... Pourquoi :
a) Mon fichier de base s'appelle Erola,
b) Après création de répertoire, il s'enregistre sous le nom de "323- Lille" par exemple.
c) Quand j'ouvre Lola, je dois pouvoir non plus aller chercher dans Erola les infos nécessaires mais dans "323-Lille"! Voilà pourquoi j'avais pensé passer par un fichier intermédiaire qui enregistrait le "323-Lille" comme variable que je rapatriais ensuite dans Lola pour faire fonctionner les formules grâce à Indirect() et l'enregistrer grâce au code que vous m'avez fourni ce matin ... A moins qu'il y ait une possibilité directe ????
a) Mon fichier de base s'appelle Erola,
b) Après création de répertoire, il s'enregistre sous le nom de "323- Lille" par exemple.
c) Quand j'ouvre Lola, je dois pouvoir non plus aller chercher dans Erola les infos nécessaires mais dans "323-Lille"! Voilà pourquoi j'avais pensé passer par un fichier intermédiaire qui enregistrait le "323-Lille" comme variable que je rapatriais ensuite dans Lola pour faire fonctionner les formules grâce à Indirect() et l'enregistrer grâce au code que vous m'avez fourni ce matin ... A moins qu'il y ait une possibilité directe ????
Oui .... Heureusement que vous suivez ... C'est bien AQ7 et non AE7 ! Oui passer à 2000 lignes est radical mais à raison de 15à20 lignes par an cela laisse de la marge à mes successeurs .... Et d'ici là peut-être les boss auront-ils voulu abandonner excel au profit d'access ... Bon après-midi, profitez du beau temps si vous le pouvez et bien à Vous !
JPierre
JPierre