Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Faire deplacer des tableau sur la droite...

  • Initiateur de la discussion Initiateur de la discussion Guido
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Re : Faire deplacer des tableau sur la droite...

Bonjour à tous,

Un essai avec :

VB:
Option Explicit

Sub Déplacement()
    Range("K4:S10").Copy Range("X4")
    Range("J13:R23").Copy Range("X13")
    Range("I26:Q32").Copy Range("X26")
    Range("H35:P45").Copy Range("X35")
    Range("B4").Select
End Sub

A+ à tous

Edition : Salut Jean-Noël. Ravi de te croiser
 
Dernière édition:
Re : Faire deplacer des tableau sur la droite...

Bonjour 🙂
En AG4 à glisser vers la droite et vers le bas :
Code:
=SI(NB.VIDE($A4:$K4)>10;"";INDEX($A$4:$S$46;LIGNE()-3;NB.VIDE($A4:$K4)+COLONNES($A:A)+1))
Bon WE 🙂
Edit : Salut JC 🙂
 
Re : Faire deplacer des tableau sur la droite...

Re 🙂
Ma formule est aussi valable en X4, à condition de faire sauter le nom du tableau dans la colonne A... 🙄
Bon WE 🙂
 
Re : Faire deplacer des tableau sur la droite...

Re

je trouves des erreur quand je prolonge les formules...

car j'ai des nv tableau pour essai...

Voir le fichier

le fichier original etant trop important je ne peux l'envoyer car trop volumineux meme compresser...

Merci

Guido
 

Pièces jointes

Re : Faire deplacer des tableau sur la droite...

Bonjour Guido, salut Jean-Claude, Jean-Noël, heureux de te revoir enfin 🙂

Voyez le fichier joint et cette macro :

Code:
Sub Mettre_en_forme()
Dim n&, c As Range, lig&, col%
n = Application.CountIf(Cells, "Crs.")
If n = 0 Then Exit Sub 'sécurité
Application.ScreenUpdating = False
For n = 1 To n
  Set c = Cells.Find("Crs.", IIf(c Is Nothing, [A1], c), xlValues)
  lig = Cells(c.Row, "B").CurrentRegion.Rows.Count
  c.CurrentRegion.Resize(lig).Cut Cells(c.Row, "C")
  col = Application.Max(col, c.CurrentRegion.Columns.Count)
Next
Columns("C").Resize(, col).AutoFit 'ajustement  de la largeur
Range(Columns("C").Offset(, col), Columns(Columns.Count)).Delete
[C2].MergeArea.Borders.Weight = xlThin 'si nécessaire
End Sub
A+
 

Pièces jointes

Réactions: JNP
Re : Faire deplacer des tableau sur la droite...

Re,

Avec c.Column > 3 Then c'est mieux si l'on re-clique sur le bouton :

Code:
Sub Mettre_en_forme()
Dim n&, c As Range, lig&, col%
n = Application.CountIf(Cells, "Crs.")
If n = 0 Then Exit Sub 'sécurité
Application.ScreenUpdating = False
For n = 1 To n
  Set c = Cells.Find("Crs.", IIf(c Is Nothing, [A1], c), xlValues)
  lig = Cells(c.Row, "B").CurrentRegion.Rows.Count
  If c.Column > 3 Then c.CurrentRegion.Resize(lig).Cut Cells(c.Row, "C")
  col = Application.Max(col, c.CurrentRegion.Columns.Count)
Next
Columns("C").Resize(, col).AutoFit 'ajustement  de la largeur
Range(Columns("C").Offset(, col), Columns(Columns.Count)).Delete
[C2].MergeArea.Borders.Weight = xlThin 'si nécessaire
End Sub
Fichier (2).

A+
 

Pièces jointes

Re : Faire deplacer des tableau sur la droite...

Bonjour à tous,
Salut Gérard,

Je n'avais pas pensé que notre ami souhaitait replacer les valeurs dans ces cellules...

A++
A+ à tous
 
Re : Faire deplacer des tableau sur la droite...

Re 🙂
Le plaisir est partagé, très cher 🙂
Formule corrigée :
Code:
=SI(NB.VIDE($A4:$K4)>9;"";INDEX($A$4:$S$98;LIGNE()-3;NB.VIDE($A4:$J4)+COLONNES($A:A)+1))
Bonne suite 🙂
 
Re : Faire deplacer des tableau sur la droite...

Re

Bonjour

Merci

le resultat est bien sur ideal

Le probleme cest que je connais rien en macro..et que la feuilles qui recois mes premiere extraction est

tj la meme

Si ont peu faire aller ses memes cadre dans 5 ou 6 colonnes plus a droite par rapports ce fichier cele serait le top.

Voici le fichier definitif avec un cadre position manuellement...

Merci de votre devouement

Guido
 

Pièces jointes

Re : Faire deplacer des tableau sur la droite...



J'ai essayé la nv formules ,mais sur le dernier fichier" Les Tableaux complet sa ne marche pas..

je n'arrive pas a adapter,je suis navré

Merci de pouvoir regarder ..et me faire...la premiere feuille seulement

Guido
 
Re : Faire deplacer des tableau sur la droite...

Re,

Si ont peu faire aller ses memes cadre dans 5 ou 6 colonnes plus a droite par rapports ce fichier cele serait le top.

Vous avez raison, c'est mieux.

Voici une nouvelle solution, qui fonctionne quelle que soit la disposition des tableaux :

Code:
Sub Mettre_en_forme()
Dim P As Range, n&, col%, c As Range, c1 As Range, lig&
Set P = ActiveSheet.UsedRange
n = Application.CountIf(Cells, "N°")
If n = 0 Then Exit Sub 'sécurité
Application.ScreenUpdating = False
col = P.Column + P.Columns.Count
For n = 1 To n
  If c Is Nothing Then Set c = Cells.Find("N°", , xlValues, , xlByRows) _
    Else Set c = P.Find("N°", c)
  Set c1 = Rows(c.Row).Find("Crs.", c)
  If Not c1 Is Nothing Then
    lig = c.CurrentRegion.Rows.Count
    c.Resize(lig).Copy Cells(c.Row, col) 'facultatif
    c1.Resize(lig, col - c1.Column).Cut Cells(c.Row, col + 1)
  End If
Next
Range(Columns(col), Columns(Columns.Count)).AutoFit 'ajustement largeur
End Sub
Votre dernier fichier n'est pas très clair, j'utilise donc le même que précédemment.

Fichier (3).

Remarque : la macro beuguera si l'on clique 2 fois sur le bouton.

Mais elle ne beuguera pas si l'on met cette ligne en commentaire :

Code:
'c.Resize(lig).Copy Cells(c.Row, col) 'facultatif
Les tableaux continueront à se décaler vers la droite...

Normalement cette macro est faite pour n'être exécutée qu'une fois.

A+
 

Pièces jointes

Re : Faire deplacer des tableau sur la droite...

Bonjour à tous


J'ai essayé la nv formules ,mais sur le dernier fichier" Les Tableaux complet sa ne marche pas..

je n'arrive pas a adapter,je suis navré

Merci de pouvoir regarder ..et me faire...la premiere feuille seulement

Guido
le problème est que les données à décaler ne se trouvent pas dans la même colonne pour tous les tableaux
il faudrait y remettre un peu d'ordre et ce code fera l'affaire
Code:
For i = 1 To Sheets.Count
For Each cellule In Sheets(i).Range("U6:AH" & Range("U65535").End(xlUp).Row)
If cellule <> "" Then Sheets(i).Cells(cellule.Row, cellule.Column + 19) = cellule
Next cellule
Next i

à+
Philippe
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
247
Réponses
14
Affichages
490
Réponses
7
Affichages
689
Réponses
1
Affichages
234
Réponses
1
Affichages
283
W
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…