Coller un tableau en enlevant les cellules vides dynamique
Fermé
Grandinatus
-
28 sept. 2022 à 15:40
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 - 30 sept. 2022 à 16:40
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 - 30 sept. 2022 à 16:40
A voir également:
- Coller un tableau en enlevant les cellules vides dynamique
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Trier un tableau excel - Guide
4 réponses
via55
Messages postés
14495
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
7 novembre 2024
2 735
28 sept. 2022 à 15:49
28 sept. 2022 à 15:49
Bonjour
Pour avoir une aide il faut joindre ton fichier, pas son image. Fichier à poster sur le site cjoint.com, faire créer un lien , le copier et revenir le coller ici.
Dans l'attente
Cdlmnt
Via
via55
Messages postés
14495
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
7 novembre 2024
2 735
28 sept. 2022 à 20:55
28 sept. 2022 à 20:55
Re,
Ton fichier avec une macro pour coller sans vides en dessous
https://www.cjoint.com/c/LICs2DTNFeu
Cdlmnt
Via
via55
Messages postés
14495
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
7 novembre 2024
2 735
28 sept. 2022 à 22:37
28 sept. 2022 à 22:37
Il suffit d'adapter les n)s de lignes et de colonnes
macro avec explications :
Sub sansvides() xr = 47 ' ligne avant celle où recopier en premier yr = 2 ' colonne où recopier en premier For y = 2 To 6 'boucle sur les colonnes de 2 à 6 For x = 17 To 46 ' boucle sur les lignes de 17 à 46 If Cells(x, y) <> "" Then ' si cellule non vide xr = xr + 1 ' on incrémente la ligne de recopie de 1 Cells(xr, yr) = Cells(x, y) ' on remplit la cellule avec le contenu de celle du premier tableau If xr = 77 Then xr = 47: yr = yr + 1 ' lorsque on atteint la igne 77 on revient à la ligne 47 et on incrémente de 1 la colonne de recopie If yr = 7 Then yr = 8 ' si n° de col = 7 on passe à la colonne 8 (colonne d'espace) End If Next Next For y = 8 To 12 For x = 17 To 46 If Cells(x, y) <> "" Then xr = xr + 1 Cells(xr, yr) = Cells(x, y) If xr = 77 Then xr = 47: yr = yr + 1 If yr = 7 Then yr = 8 End If Next Next For y = 17 To 18 For x = 17 To 46 If Cells(x, y) <> "" Then xr = xr + 1 Cells(xr, yr) = Cells(x, y) If xr = 77 Then xr = 47: yr = yr + 1 If yr = 7 Then yr = 8 End If Next Next End Sub
Rebonjour Via55,
Merci encore de ce code que j'ai remis ici :
xr = 16 ' ligne avant celle où recopier en premier
yr = 20 ' colonne où recopier en premier
For y = 2 To 6 'boucle sur les colonnes de 2 à 6
For x = 17 To 46 ' boucle sur les lignes de 17 à 46
If Cells(x, y) <> "" Then ' si cellule non vide
xr = xr + 1 ' on incrémente la ligne de recopie de 1
Cells(xr, yr) = Cells(x, y) ' on remplit la cellule avec le contenu de celle du premier tableau
If xr = 46 Then xr = 16: yr = yr + 1 ' lorsque on atteint la igne 46 on revient à la ligne 16 et on incrémente de 1 la colonne de recopie
End If
Next
Next
For y = 2 To 6
For x = 50 To 79
If Cells(x, y) <> "" Then
xr = xr + 1
Cells(xr, yr) = Cells(x, y)
If xr = 46 Then xr = 16: yr = yr + 1
End If
Next
Next
End Sub
J'aimerais aussi coller la mise en forme du premier tableau dans le deuxième :
J'ai essayé cette commande mais sans résultats, aurais-tu une idée pour résoudre ça ?
.PasteSpecial Paste:=xlFormats
Merci beaucoup, bonne journée
via55
Messages postés
14495
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
7 novembre 2024
2 735
30 sept. 2022 à 16:40
30 sept. 2022 à 16:40
Re,
Remplace
Cells(xr, yr) = Cells(x, y)
par :
Cells(x, y).Select Selection.Copy Cells(xr, yr).Select ActiveSheet.Paste
Cdlment
Via
28 sept. 2022 à 16:15
https://cjoint.com/c/LIConVcYvY0
voici le lien, désolé c'est ma première fois