A voir également:
- Copier les lignes avec valeurs sans les lignes vides
- Excel trier par ordre alphabétique en gardant les lignes - Guide
- Afficher toutes les lignes masquées excel ✓ - Forum Excel
- Copier une vidéo youtube - Guide
- Filtre excel ne prend pas en compte toutes les lignes ✓ - Forum Excel
- Excel afficher toutes les lignes masquées ✓ - Forum Excel
5 réponses
thev
Messages postés
1883
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
6 novembre 2024
691
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
1883
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
6 novembre 2024
691
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