Création d'une base par copier coller en macro vba avec une sélection multiple

Wmerlin

XLDnaute Nouveau
Bonjour à tous
Je débute dans la réalisation de macro et après beaucoup de lecture sur le net j’ai bien compris qu’à un problème il existe plusieurs solutions pour arriver au même résultat. Mais là je coince sur une macro qui vous semblera simple mais pas pour moi. il y a plusieurs posts un peux similaire avec des solutions mais la sélection sur plusieurs feuilles fait que tout ce que j'ai tenter ne fonctionne pas.


Objectif : dans un classeur à plusieurs feuilles comment copier toutes les lignes qui commencent par 1 ( colonne A) de toutes les feuilles dans une nouvelle feuille qui s’appelle « base » en commençant à coller sur la ligne 2

Précision : la valeur 1 qui sert à la sélection peux être remplacée par tout autre valeur « XXX » en colonne A si cela rends la sélection plus facile

Difficulté rencontrer : réaliser la macro qui sélectionne les lignes et les copies les unes derrières les autres

Exemple simple :
Feuille « O1-5 » ligne à sélectionner 3 :5 ;45 :49 ;59 :60 (ligne de 3à 5 puis de 45 à 49 puis de 59 à 60)
Feuille « O1-22 » ligne à sélectionner 10 :12 ;22 :49 ;57 :68 (ligne de 10à 12 puis de 22 à 57 puis de 57 à 68)
Soit 44 lignes (qui débute par 1, colonne A) à coller dans la feuille « base » à la suite en débutant ligne 2

Sachant que mon classeur comporte environ 15 feuilles

Merci d'avoir pris le temps de me lire et merci par avance a ceux qui auront le courage de m'aider

Wmerlin
 

GI_GI

XLDnaute Occasionnel
Re : Création d'une base par copier coller en macro vba avec une sélection multiple

Bonsoir a tous
Un essai vite fait.
 

Pièces jointes

  • BASE.xlsm
    23.6 KB · Affichages: 59
  • BASE.xlsm
    23.6 KB · Affichages: 66
  • BASE.xlsm
    23.6 KB · Affichages: 75

Wmerlin

XLDnaute Nouveau
Re : Création d'une base par copier coller en macro vba avec une sélection multiple

Bonjour et surtout merci de m'aider

j'ai installer la macro sur mon fichier et lors de l'execussion elle me dit
" erreur d'exécution '13':
Incompatibilité de type "

voila la macro
macro.jpg
 

Pièces jointes

  • macro.jpg
    macro.jpg
    40.9 KB · Affichages: 56
  • macro.jpg
    macro.jpg
    40.9 KB · Affichages: 54

Wmerlin

XLDnaute Nouveau
Re : Création d'une base par copier coller en macro vba avec une sélection multiple

C'est bon merci j'ai trouvé il y avait dans mes feuilles une cellule avec "#erreur" qui bloquait la macro.
pour moi une grosse étape d'accomplis.

je peux maintenant rallonger la macro avec de la misse en forme et du travail de traitement.
Merci beaucoup
 

Wmerlin

XLDnaute Nouveau
Re : Création d'une base par copier coller en macro vba avec une sélection multiple

Bonjour Me revoila avec ma demande d'aide, Merci à GI-GI pour son aide précedente

toujours la même demande mais j'ai avancé.
j'ai ajouter à la macro de Gi-GI un nettoyage de feuille de base et un copier coller d’entêté de colonne pour pouvoir enchainer par la suite sur la réalisation d'un tableau croisé dynamique.

le soucis de la macro creer est qu'il me copie deux fois les mêmes lignes.
je vous mets la macro en dessous si quelqu'un veux bien regarder ou ce trouve le problème merci.



Sub test1()
'
' test1 Macro
'

'
Cells.Select
Sheets("base").Select
Cells.Select
Selection.Delete Shift:=xlUp
Cells.Select
Sheets("O1-5").Select
Rows("7:7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("base").Select
Rows("1:1").Select
ActiveSheet.Paste
Cells.Select

Dim nombre_feuille As Integer
Dim feuille As Integer
Dim ligne As Integer
Dim nombre_ligne As Integer
Dim ligne_destination As Integer
Dim valeur_cherche As String
ligne_destination = 2
nombre_feuille = Sheets.Count - 1
For feuille = 1 To nombre_feuille
'Worksheets(feuille + 1).Select
nombre_ligne = Worksheets(feuille + 1).Range("a65535").End(xlUp).Row
For ligne = 1 To nombre_ligne
Worksheets(feuille + 1).Select
valeur_cherche = Worksheets(feuille + 1).Cells(ligne, 1).Value
If valeur_cherche = "1" Then
Worksheets(feuille + 1).Rows(ligne).Select
Selection.Copy
Sheets("base").Select
Rows(ligne_destination).Select
ActiveSheet.Paste
Application.CutCopyMode = False
ligne_destination = ligne_destination + 1
End If

Next ligne

Next feuille
End Sub
 

Wmerlin

XLDnaute Nouveau
Re : Création d'une base par copier coller en macro vba avec une sélection multiple

bonjour ou rebonjour

voila mon projet a bien avancer et fonctionne bien sur mes classeur comprenant peu de feuille mais des que le nombre de feuille augmente ca plante une petite aide svp

help1.jpg

voila ce que cela affiche avec les variables locales

et voila la macro complete

Sub majtreso()
'
' majtreso Macro
'

Application.ScreenUpdating = True
'
Cells.Select
Sheets("base").Select
Cells.Select
Selection.Delete Shift:=xlUp
Cells.Select
Sheets("IL1-1").Select
Rows("7:7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("base").Select
Rows("1:1").Select
ActiveSheet.Paste
Cells.Select

Dim nombre_feuille As Integer
Dim feuille As Integer
Dim ligne As Integer
Dim nombre_ligne As Integer
Dim ligne_destination As Integer
Dim valeur_cherche As String
ligne_destination = 2
nombre_feuille = Sheets.Count - 1
For feuille = 1 To nombre_feuille
'Worksheets(feuille + 1).Select
nombre_ligne = Worksheets(feuille + 1).Range("a65535").End(xlUp).Row
For ligne = 1 To nombre_ligne
Worksheets(feuille + 1).Select
valeur_cherche = Worksheets(feuille + 1).Cells(ligne, 1).Value
If valeur_cherche = "1" Or valeur_cherche = "2" Then
Worksheets(feuille + 1).Rows(ligne).Select
Selection.Copy
Sheets("base").Select
Rows(ligne_destination).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ligne_destination = ligne_destination + 1
End If

Next ligne

Next feuille

Application.ScreenUpdating = True
Sheets("tréso").Select
Range("A7").Select
ActiveWorkbook.RefreshAll

End Sub
 

Discussions similaires