Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

importer des donnees colonnes discontinues

  • Initiateur de la discussion Initiateur de la discussion reve24
  • 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 !

reve24

XLDnaute Occasionnel
bonjour
j ai une erreur dans mon code
Sub Import2()
Dim nodeb As Long
Dim nofin As Long
Dim moi As String
moi = ActiveWorkbook.Name
Dim LeNom As String
Application.Dialogs(xlDialogOpen).Show
If ActiveWorkbook.Name = moi Then
MsgBox "Base abandonnée!"
Exit Sub
End If
LeNom = ActiveWorkbook.Name
nodeb = InputBox("Ligne de debut ?", "identification", "2")
nofin = InputBox("Ligne de fin ?", "identification", "6500")
Range("A2").Select

ActiveWorkbook.ActiveSheet.Range("D,L,Q" & nodeb & "D,L,Q" & nofin).Copy

With Workbooks(moi).Sheets("Base")
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select

End With
Workbooks(LeNom).Close
Sheets("Base").Select

End Sub


Ci joint le fichier
le but : copier des colonnes d un fichier et les coller ( valeurs seules) dans l'onglet base .
 

Pièces jointes

Re : importer des donnees colonnes discontinues

Bonjour reve24,

Je te propose de modifier ton code comme ceci:

Code:
Sub Import2()
Dim nodeb As Long
Dim nofin As Long
Dim moi As String
Dim Plage As Range
moi = ActiveWorkbook.Name
Dim LeNom As String
Application.Dialogs(xlDialogOpen).Show
If ActiveWorkbook.Name = moi Then
  MsgBox "Base abandonnée!"
  Exit Sub
End If
LeNom = ActiveWorkbook.Name
nodeb = InputBox("Ligne de debut ?", "identification", "2")
nofin = InputBox("Ligne de fin ?", "identification", "6500")
    Range("A2").Select
    Set Plage = ActiveWorkbook.ActiveSheet.Range("D" & nodeb & ":D" & nofin & ",L" & nodeb & ":L" & nofin & ",Q" & nodeb & ":Q" & nofin)
    Plage.Copy
With Workbooks(moi).Sheets("Base")
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A1").Select
End With
Workbooks(LeNom).Close
Sheets("Base").Select
End Sub

A +

Cordialement
 
Re : importer des donnees colonnes discontinues

Bonjour

Merci de ton aide mais😕

Cela copie dans le fichier "source" et non pas dans le fichier "destination"

j ai de nouveau essayer ma 1 ere macro cela fonctionne pourquoi la 2 eme ne fonctionne pas
 
Re : importer des donnees colonnes discontinues

Bonjour reve24,

Je me suis limité à modifier l'adressage de la zone à copier, sans aller plus loin dans ton code initial. D'ailleurs tu constateras que je n'ai pas touché à l'adresse de destination de la copie.

J'ai donc repris l'étude de ton code en entier et j'en suis arrivé à l'exemple suivant (qui me semble fonctionner comme tu l'espérais):

Code:
Sub Import2()
Dim nodeb As Long
Dim nofin As Long
Dim moi As String
moi = ActiveWorkbook.Name
Application.Dialogs(xlDialogOpen).Show
If ActiveWorkbook.Name = moi Then
  MsgBox "Base abandonnée!"
  Exit Sub
End If
nodeb = InputBox("Ligne de debut ?", "identification", "2")
nofin = InputBox("Ligne de fin ?", "identification", "6500")
Set Plage = ActiveWorkbook.ActiveSheet.Range("D" & nodeb & ":D" & nofin & ",L" & nodeb & ":L" & nofin & ",Q" & nodeb & ":Q" & nofin)
Plage.Copy Destination:=Workbooks(moi).Sheets("Base").Range("A2")
ActiveWorkbook.Close
Range("A1").Select
End Sub

En te souhaitant une bonne journée.

Cordialement.
 
Re : importer des donnees colonnes discontinues

Merci
Seulement ce que j ai perdu par rapport a ma macro import sur mon fichier c'est l importation à la dernière ligne sur import 2
Cela efface les donnees , et remplace .Je ne peux pas importer plusieurs classeurs
 
Re : importer des donnees colonnes discontinues

RE:

Vois si cette version te convient mieux. A relire ton code précédent, j'ai cru comprendre que tu voulais cumuler les données de chaque colonne à la suite des dernières cellules. Si c'est bien le cas, il faut alors copier les colonnes une à une car la copie groupée laissera de blancs ou effacera des cellules dans les colonnes B:c en fonction du nombre de lignes en colonne a.

Code:
Sub Import2()
Dim nodeb As Long
Dim nofin As Long
Dim moi As String
Dim Plage As Range
moi = ActiveWorkbook.Name
Dim LeNom As String
Application.Dialogs(xlDialogOpen).Show
If ActiveWorkbook.Name = moi Then
  MsgBox "Base abandonnée!"
  Exit Sub
End If
LeNom = ActiveWorkbook.Name
nodeb = InputBox("Ligne de debut ?", "identification", "2")
nofin = InputBox("Ligne de fin ?", "identification", "6500")
    Range("A2").Select
    Set Plage = ActiveWorkbook.ActiveSheet.Range("D" & nodeb & ":D" & nofin & ",L" & nodeb & ":L" & nofin & ",Q" & nodeb & ":Q" & nofin)
    Plage.Copy
With Workbooks(moi)
  .Activate
  .Sheets("Base").Select
  Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
  Range("A1").Select
End With
Workbooks(LeNom).Close
End Sub

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

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
905
Réponses
2
Affichages
541
Réponses
5
Affichages
646
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…