Importation avec condition

  • Initiateur de la discussion Initiateur de la discussion KM29
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

K

KM29

Guest
Bonjour,

J'ai ici deux fichier joints
Un fichier source et le fichier final, lorsque que je lance le classeurFinal , j'active les macro et il m'importe directement les donnée du ClasseurSource, si je modifie des valeurs dans le classeurSource alors quand je relancerai le ClasseurFinal, les données sont bien mise a jour
Maintenant moi je veux exactement la meme chose sauf que l'importation vers le ClasseurFinal se fasse avec les données du ClasseurSource mais seulement pour les ligne donc la colonne C est egal a 1,
Donc exactement la meme chose avec juste une condition en plus que C=1

Cordialement
 

Pièces jointes

Re : Importation avec condition

J'ai reussi avec le code suivant dans le fichierFinal



dans un module:


Option Explicit

Sub Recupere()
Dim Chemin As String, Fichier As String
Dim Ws As Worksheet
Dim NbLg As Long

Chemin = ThisWorkbook.Path & "\"
Fichier = "UR527 Tableau de Bord des Indicateurs 2013.xls"
If Dir(Chemin & Fichier) = "" Then
MsgBox "Fichier inexistant"
End
End If

Application.ScreenUpdating = False
Set Ws = Sheets(1)
With Workbooks.Open(Chemin & Fichier)
With Sheets("TdB")
.Rows(1).Insert
NbLg = .Range("C" & Rows.Count).End(xlUp).Row
With .Range("A1:BL" & NbLg)
.AutoFilter field:=64, Criteria1:=1
.SpecialCells(xlCellTypeVisible).Copy Ws.Range("A1")
End With
Ws.Range("A1:BL1").Delete shift:=xlShiftUp
End With
.Close savechanges:=False
End With
End Sub





et dans ThisWorkbook :


Private Sub Workbook_Open()
Recupere
End Sub






Maintenant comment faire pour avoir un intervalle de 2 ligne entre chaque ligne importé ?
 
Re : Importation avec condition

Re KM,

J'hésitais à te répondre car tout ce que je peux te dire concernant le code c'est que tu sembles plus avancé que moi! Je peux le dire juste en visualisant le code que tu a créée au post#16.

Par contre Papou a écrit au post #9 une solution
Pour intercaler 2 lignes entre chaque copie, il faut modifier l'incrémentation de Lg :
Lg = Lg + 3

Peut-être avec NbLg ?

Désolé de ne pouvoir en faire plus! 🙁

Bonne journée à tous!
 
Re : Importation avec condition

Oui avec celui de papou le "Lg+33 fonctionnerai mais le code ne fonctionne pas chez moi, et avec celui j'ai du mal a inserer l'information pour faire passer des ligne , mais merci beaucoup 🙂

Bonne journée !
 
Re : Importation avec condition

Bonjour KM29, Geneviève78, azerty29,

Après mûre réflexion, je pense que le plus simple est d'intégrer une boucle d'ajout de lignes après le collage des données filtrées.

Par exemple :

Code:
Sub Recupere()
Dim Chemin As String, Fichier As String
Dim Ws As Worksheet
Dim Lg As Long

Chemin = ThisWorkbook.Path & "\"
Fichier = "UR527 Tableau de Bord des Indicateurs 2013.xls"
If Dir(Chemin & Fichier) = "" Then
MsgBox "Fichier inexistant"
End
End If

Application.ScreenUpdating = False
Set Ws = Sheets(1)
With Workbooks.Open(Chemin & Fichier)
With Sheets("TdB")
.Rows(1).Insert
NbLg = .Range("C" & Rows.Count).End(xlUp).Row
With .Range("A1:BL" & NbLg)
.AutoFilter field:=64, Criteria1:=1
.SpecialCells(xlCellTypeVisible).Copy Ws.Range("A1")
For Lg = .Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
  .Rows(Lg & ":" & Lg + 1).Insert
Next
End With
Ws.Range("A1:BL1").Delete shift:=xlShiftUp
End With
.Close savechanges:=False
End With
End Sub
A vérifier car j'ai testé sur un fichier fictif.

A +

Cordialement.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
394
Retour