Commande SpecialCells(xlCellTypeVisible).Paste

Bonjour,

Je suis débutante en VBA, j’arrive à mettre généralement en place les actions que je souhaite faire mais là je n’y parviens pas. Je me permets de vous solliciter.

J'ai un fichier Excel (2016) contenant 4 onglets.

Les 4 premières colonnes (A à D) des 4 onglets contiennent le même type d'information :

Date, Nom, Prénom et ID.

Dans le 1er onglet ("Informations"), à partir de la colonne 5, 3 colonnes contiennent d’autres informations (E à G),
Dans le 2ème onglet( "Adresses"), à partir de la colonne 5, 13 colonnes contiennent d’autres informations (E à Q)
Dans le 3ème onglet ("Loisirs"), à partir de la colonne 5, 14 colonnes contiennent d’autres informations (E à R)

Mon souhait serait de pouvoir copier dans le 5ème onglet (" Synthèse"), toutes les informations.

J’ai commencé à mettre quelques données mais je bloque sur la copie des données alors qu’il y a des colonnes masquées.

Sub ImportValeursFichier()
'
' Réalisation d'une macro permettant d'intégrer les données dans l’onglet Synthèse issues des autres onglets.

' Déclaration des variables
Dim MonFichier1 As String
'Dim MonFichier2 As String
Dim DateJ$, pFld$, f$
Dim DateMois 'date du fichier pour So Full

' Répertoire de travail
DateJ = InputBox("Date en cours ? format MM.AAAA") 'saisir la date du fichier
MonFichier1 = "S:\SERVICES\Données\Valeurs\Fichier extrait " & DateJ & ".xlsm"
'MonFichier2 = "S:\SERVICES\Données\Valeurs\Fichier extrait.xlsx"

' Message de validation pour copie des données
Dim ws As Object
Dim cellule As Range
Application.DisplayAlerts = False

' Ouverture fichiers de travail
' Travail sur onglet Informations
Workbooks.Open Filename:=MonFichier1, UpdateLinks:=0
Sheets("Informations ").Select
Range("A3:G3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy

'Workbooks.Open Filename:=MonFichier2, UpdateLinks:=0
Sheets("Synthèse").Select
Range("A3").Select
ActiveSheet.Paste

' Ok cela fonctionne pas de souci ! C’est ensuite que cela se complique

' Travail sur onglet Adresses

' Windows\Fichier extrait " & DateJ & ".xlsm ").Activate
Sheets("Adresses").Select
Range("A3:Q3").Select '
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy

' Windows("Fichier extrait.xlsx ").Activate

' Dans l’onglet Synthèse, les colonnes sont reprises à la suite suivant les onglets.

' Il est donc impossible de coller les valeurs de l’onglet Adresses sans remplir les colonnes E à G qui

' sont pourtant masquées. Les données copiées de l’onglet Adresses devraient être copiées de H à T.

Sheets("Synthèse").Select

Columns("E:G").Select

Selection.EntireColumn.Hidden = True
Range("A1").Select

Range(Selection, Selection.End(xlDown)).Select
ActiveCell.Offset(1, 0).Select

End Sub

' J’ai compris qu’il fallait utiliser la commande SpecialCells(xlCellTypeVisible).Paste mais je n’arrive pas à l’écrire.

Il y a très certainement une autre solution à laquelle je n'ai pas pensé :).

Ci-joint un fichier.

Merci d’avance.

Bonjour,

Cette commande est la suivante mais j'ai des doutes que cela fonctionne, il y a énormément de SELECT dans votre code ..

Range(Selection).SpecialCells(xlCellTypeVisible).Select

De plus j'ai testé en copiant une plage A1/B1 Feuil1 masquant une colonne B et C Feuil2, en sélectionnant cellule affichée plage A1/D1 Feuil2 et copiant les valeurs mais malheureusement ceci me colle les valeurs sur A1/B1 et D1/E1, quelqu'un a une explication sur les cellules adjacentes B1/D1 ?

Merci et bonne journée.

Merci d’avoir pris le temps de regarder. Je vais essayer d’améliorer mon code.

Rechercher des sujets similaires à "commande specialcells xlcelltypevisible paste"