recopier ou regrouper plusieurs colonnes en 1 seul

breakers

XLDnaute Junior
bonjour à tous !

je suis devant un dilemne, je souhaite afin de me simplifier la vie regrouper de façon automatique plusieurs colonnes considérer comme fixe (en gros colonne C, F et ainsi de suite) mais avec un nombre de cellules variable, dans une autre feuille en colonne A le tout à la suite de façon verticale et non horizontale !

cela est il possible ?

je reste à votre dispo si le fichier n'est pas assez clair.

un grand merci par avance pour votre aide !!
 

Pièces jointes

  • exemple.xls
    19.5 KB · Affichages: 67
  • exemple.xls
    19.5 KB · Affichages: 73
  • exemple.xls
    19.5 KB · Affichages: 47

breakers

XLDnaute Junior
recopier ou regrouper plusieurs colonnes en 1 seul [RESOLU]

yep

je viens de trouver ce bout de code qui m'irait bien, mais comment rajouter dedans et surtout ou pour qu'il fasse un copier valeur ?
voici le code :

Code:
Sub copiecolonne()

Dim Ligne As Long, I As Integer
Dim Colonnes
Sheets("SUIVI QTE").Select
  Colonnes = Array("a", "D", "g")
  Ligne = Range("eo" & Rows.Count).End(xlUp).Row
  If Ligne > 1 Then Ligne = Ligne + 1
  For I = 0 To UBound(Colonnes)
    Range(Cells(1, Colonnes(I)), Cells(Cells(Rows.Count, Colonnes(I)).End(xlUp).Row, Colonnes(I))).Copy Range("eo" & Ligne)
    Ligne = Range("L" & Rows.Count).End(xlUp).Row + 1
  Next I
End Sub

merci d'avance
 
Dernière édition:

Caillou

XLDnaute Impliqué
Re : recopier ou regrouper plusieurs colonnes en 1 seul

Bonjour,

Essayes la macro (bouton Go) dans le fichier joint et tiens moi au courant.

Caillou
 

Pièces jointes

  • exemple.xls
    37.5 KB · Affichages: 54
  • exemple.xls
    37.5 KB · Affichages: 50
  • exemple.xls
    37.5 KB · Affichages: 57

breakers

XLDnaute Junior
Re : recopier ou regrouper plusieurs colonnes en 1 seul

re et re

je viens de penser en voulant le tester qu'il faut aussi que la macro efface la colonne "eo" avant de s'éxecuter sinon elle me recopie les 1eres colonnes plusieurs fois.

merci d'avance si vous connaissez ces bouts de code.
 

breakers

XLDnaute Junior
Re : recopier ou regrouper plusieurs colonnes en 1 seul

hello !

merci pour ta reponse c'est parfait !

en gros tu défini si je comprend bien les colonnes etc avec i j et k ?

et cela recopie tant qu'une valeur et trouver dans la colonne ? genre colonne a puis d etcc jusqu'a ce qu'il ne trouve plus rien ?
 

Caillou

XLDnaute Impliqué
Re : recopier ou regrouper plusieurs colonnes en 1 seul

oui il faut convertir en xlsm pour avoir environ 1 million de lignes par feuille

je viens de faire un test sur plus d'1 million de lignes ; verdict 45 secondes !

voici le code tres legerement modifié :
Code:
Sub classeur_breakers()
  Dim i As Long, j As Long, k As Integer
  Dim fQ As Worksheet, fR As Worksheet
  
  Set fQ = Worksheets("suivi qté")
  Set fR = Worksheets("recherche")
  
  fR.Range("G3") = Time
  
  Application.ScreenUpdating = False
  Application.Calculation = xlCalculationManual
  
  i = 2         'N° ligne feuille Qté
  j = 1         'N° ligne feuille Recherche
  k = 3         'N° colonne feuille Recherche
  
  With fR
    Do While Not IsEmpty(fQ.Cells(i, k))
      Do While Not IsEmpty(fQ.Cells(i, k))
        .Cells(j, 1) = fQ.Cells(i, k)
        i = i + 1
        j = j + 1
      Loop
      i = 2
      k = k + 3
    Loop
  End With

  fR.Range("G4") = Time

  Application.ScreenUpdating = True
  Application.Calculation = xlCalculationAutomatic
  
End Sub

Caillou
 

Roland_M

XLDnaute Barbatruc
Re : recopier ou regrouper plusieurs colonnes en 1 seul

bonjour à tous,

ne serait-ce pas plus rapide de copier des champs complets plutôt que des cellules une à une !?
comme ceci:

Code:
Sub classeur_breakers()
Dim PremLigQ&, DernLigQ&, NoColQ%, PasColQ&, NoColR&
  
fQ$ = "suivi qté"
fR$ = "recherche"
NoColQ = 3: PasColQ = 3: PremLigQ = 2: NoColR = 1

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Sheets(fQ$).Select 'active le feuille de données à copier !
DernLigR = 1
Do While Not IsEmpty(Cells(PremLigQ, NoColQ))
   DernLigQ = Columns(NoColQ).Rows(Rows.Count).End(xlUp).Row
   Application.CutCopyMode = False
   Range(Cells(PremLigQ, NoColQ), Cells(DernLigQ, NoColQ)).Copy
   Sheets(fR$).Cells(DernLigR, NoColR).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
   DoEvents
   DernLigR = Sheets(fR$).Columns(NoColR).Rows(Rows.Count).End(xlUp).Row + 1
   NoColQ = NoColQ + PasColQ
Loop

Sheets(fR$).Select: Range("A1").Select
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
 

Pièces jointes

  • regrouper-plusieurs-colonnes-en-1-seul-exemple.xls
    43.5 KB · Affichages: 33
  • regrouper-plusieurs-colonnes-en-1-seul-exemple.xls
    43.5 KB · Affichages: 52
  • regrouper-plusieurs-colonnes-en-1-seul-exemple.xls
    43.5 KB · Affichages: 36

Discussions similaires

Statistiques des forums

Discussions
312 194
Messages
2 086 069
Membres
103 110
dernier inscrit
Privé