A voir également:
- Copier les lignes avec valeurs sans les lignes vides
- Excel trier par ordre alphabétique en gardant les lignes - Guide
- Comment copier une vidéo youtube - Guide
- Filtre excel ne prend pas en compte toutes les lignes ✓ - Forum Excel
- Ajoutez à la liste de contacts ana le goff, inscrite le 27 novembre 2015, dans la catégorie i. puis triez les contacts en les classant : par ordre alphabétique de leur nom de famille (critère principal), puis par date du plus récent au plus ancien (critère secondaire). quel mot apparaît à la verticale dans la colonne "catégorie" entre les lignes 200 et 209 (en-tête compris) ? ✓ - Forum Word
- Super copier - Télécharger - Gestion de fichiers
5 réponses
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
24 juin 2016 à 18:27
24 juin 2016 à 18:27
Bonjour,
ci-dessous code à essayer
ci-dessous code à essayer
Sub Bouton5_Clic()
Dim plage_à_copier, première_cellule_vide, plage_collée As Range
'copie feuille de AA2 à la dernière cellule utilisée de la colonne AH
With Sheets("feuil1")
Set plage_à_copier = Range(.[AA2], .[AH:AH].Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious))
End With
plage_à_copier.Copy
'collage sur feuille 2 à partir de la première cellule vide
With Sheets("feuil2")
Set première_cellule_vide = .[A:A].Find("", SearchOrder:=xlByRows, SearchDirection:=xlNext)
End With
première_cellule_vide.PasteSpecial Paste:=xlPasteValues, Transpose:=False
'suppression cellules vides
Set plage_collée = première_cellule_vide.Resize(plage_à_copier.Rows.Count, plage_à_copier.Columns.Count)
plage_collée.SpecialCells(xlCellTypeBlanks).Delete (xlShiftToLeft)
plage_collée.SpecialCells(xlCellTypeBlanks).Delete (xlShiftUp)
End Sub
--
Bonsoir thev,
Avant tout merci pour ta réponse.
Lorsque le code arrive à la 1° ligne "plage_collée" j'ai l'erreur 1004 "pas de cellules correspondantes".
J'ai supprimé ces 2 dernières lignes "plage_collée" et tout fonctionne bien.
Par contre j'ai essayé de mettre "Range("A1").Select" pour terminer proprement le code. IMPOSSIBLE de sélectionner cette cellule !!!
Avant tout merci pour ta réponse.
Lorsque le code arrive à la 1° ligne "plage_collée" j'ai l'erreur 1004 "pas de cellules correspondantes".
J'ai supprimé ces 2 dernières lignes "plage_collée" et tout fonctionne bien.
Par contre j'ai essayé de mettre "Range("A1").Select" pour terminer proprement le code. IMPOSSIBLE de sélectionner cette cellule !!!
Bonjour,
J'ai omis de vous dire qu'en plus de sélectionner A1 en fin de code , je voudrai copier le même résultat en feuil3 sachant que les feuils 2 et 3 sont protégées (sans mot de passe).
J'abuse de votre savoir et de votre implication.
Merci
J'ai omis de vous dire qu'en plus de sélectionner A1 en fin de code , je voudrai copier le même résultat en feuil3 sachant que les feuils 2 et 3 sont protégées (sans mot de passe).
J'abuse de votre savoir et de votre implication.
Merci
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
25 juin 2016 à 13:00
25 juin 2016 à 13:00
Bonjour,
Effectivement, les lignes plages collées ne fonctionnent que s'il y a des cellules vides. Je les ai donc encadrées par une gestion de routine d'erreur.
Le "Range("A1").Select" ou en notation abrégée "[A1].Select" ne peut fonctionner que sur une feuille active.
ci-dessous nouveau code
Effectivement, les lignes plages collées ne fonctionnent que s'il y a des cellules vides. Je les ai donc encadrées par une gestion de routine d'erreur.
Le "Range("A1").Select" ou en notation abrégée "[A1].Select" ne peut fonctionner que sur une feuille active.
ci-dessous nouveau code
Sub Bouton5_Clic()
Dim plage_à_copier, première_cellule_vide, plage_collée As Range
'défintion plage de copie feuille de AA2 à la dernière cellule utilisée de la colonne AH
With Sheets("feuil1")
Set plage_à_copier = Range(.[AA2], .[AH:AH].Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious))
End With
'collage sur feuille 2 à partir de la première cellule vide
plage_à_copier.Copy
With Sheets("feuil2")
Set première_cellule_vide = .[A:A].Find("", SearchOrder:=xlByRows, SearchDirection:=xlNext)
If première_cellule_vide Is Nothing Then Set première_cellule_vide = .[A1]
End With
première_cellule_vide.PasteSpecial Paste:=xlPasteValues, Transpose:=False
'suppression cellules vides feuille2
Set plage_collée = première_cellule_vide.Resize(plage_à_copier.Rows.Count, plage_à_copier.Columns.Count)
On Error Resume Next 'active la gestion d'erreurs
plage_collée.SpecialCells(xlCellTypeBlanks).Delete (xlShiftToLeft)
plage_collée.SpecialCells(xlCellTypeBlanks).Delete (xlShiftUp)
On Error GoTo 0 'désactive la gestion d'erreurs
'collage sur feuille 3 à partir de la première cellule vide
plage_à_copier.Copy
With Sheets("feuil3")
Set première_cellule_vide = .[A:A].Find("", SearchOrder:=xlByRows, SearchDirection:=xlNext)
If première_cellule_vide Is Nothing Then Set première_cellule_vide = .[A1]
End With
première_cellule_vide.PasteSpecial Paste:=xlPasteValues, Transpose:=False
'suppression cellules vides feuille3
Set plage_collée = première_cellule_vide.Resize(plage_à_copier.Rows.Count, plage_à_copier.Columns.Count)
On Error Resume Next 'active la gestion d'erreurs
plage_collée.SpecialCells(xlCellTypeBlanks).Delete (xlShiftToLeft)
plage_collée.SpecialCells(xlCellTypeBlanks).Delete (xlShiftUp)
On Error GoTo 0 'désactive la gestion d'erreurs
'retour sur feuille 1
With Sheets("feuil1")
.Activate
.[A1].Select
End With
End Sub
--
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question