Merci à vous trois,
Pour répondre à LSteph, J1 est ma dernière colonne et si celle-ci est vide par rapport à mise en page cela signifie qu'il y a une
erreur et que l'ensemble de la ligne est décalée d'une cellule vers la gauche. D'où ma volonté de décaler cette ligne d'une
cellule sur la droite pour que mon tableau ressemble à qq. chose.
Pour répondre au dernier message de SERGE qui s'étonne de ma volonté d'avoir une macro. La réponse est simple. J'ai une vingtaine
de tableau avec ce Pb là. (ça vient d'un fichier texte qui ne permettait pas 100% de mise en page conforme!). Chaque tableau
comporte entre 10.000 et 20.000 lignes donc je ne peux pas faire ça manuellement et biensur toutes les lignes ne sont pas
concernées.
Enfin dernière chose. vous êtes plusieurs à m'avoir gentiment proposé plusieurs macros différentes. Ce qui m'étonne c'est que
celle proposé par SERGE est bcp plus simple que les autres. Il y a une explication.
de tte façon je vais déjà essayer ce qui m'a été proposé et je vous tiens au courant.
merci beaucoup.
JB
"JBF" a écrit dans le message de news: %Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une cellule) les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez m'expliquer d'une façon simple et adaptée à mon niveau je vous
en serais reconnaissant.
Merci d'avance.
JB
Merci à vous trois,
Pour répondre à LSteph, J1 est ma dernière colonne et si celle-ci est vide par rapport à mise en page cela signifie qu'il y a une
erreur et que l'ensemble de la ligne est décalée d'une cellule vers la gauche. D'où ma volonté de décaler cette ligne d'une
cellule sur la droite pour que mon tableau ressemble à qq. chose.
Pour répondre au dernier message de SERGE qui s'étonne de ma volonté d'avoir une macro. La réponse est simple. J'ai une vingtaine
de tableau avec ce Pb là. (ça vient d'un fichier texte qui ne permettait pas 100% de mise en page conforme!). Chaque tableau
comporte entre 10.000 et 20.000 lignes donc je ne peux pas faire ça manuellement et biensur toutes les lignes ne sont pas
concernées.
Enfin dernière chose. vous êtes plusieurs à m'avoir gentiment proposé plusieurs macros différentes. Ce qui m'étonne c'est que
celle proposé par SERGE est bcp plus simple que les autres. Il y a une explication.
de tte façon je vais déjà essayer ce qui m'a été proposé et je vous tiens au courant.
merci beaucoup.
JB
"JBF" <nospam-jbfield@free.fr> a écrit dans le message de news: %235GwfnCsIHA.4376@TK2MSFTNGP06.phx.gbl...
Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une cellule) les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez m'expliquer d'une façon simple et adaptée à mon niveau je vous
en serais reconnaissant.
Merci d'avance.
JB
Merci à vous trois,
Pour répondre à LSteph, J1 est ma dernière colonne et si celle-ci est vide par rapport à mise en page cela signifie qu'il y a une
erreur et que l'ensemble de la ligne est décalée d'une cellule vers la gauche. D'où ma volonté de décaler cette ligne d'une
cellule sur la droite pour que mon tableau ressemble à qq. chose.
Pour répondre au dernier message de SERGE qui s'étonne de ma volonté d'avoir une macro. La réponse est simple. J'ai une vingtaine
de tableau avec ce Pb là. (ça vient d'un fichier texte qui ne permettait pas 100% de mise en page conforme!). Chaque tableau
comporte entre 10.000 et 20.000 lignes donc je ne peux pas faire ça manuellement et biensur toutes les lignes ne sont pas
concernées.
Enfin dernière chose. vous êtes plusieurs à m'avoir gentiment proposé plusieurs macros différentes. Ce qui m'étonne c'est que
celle proposé par SERGE est bcp plus simple que les autres. Il y a une explication.
de tte façon je vais déjà essayer ce qui m'a été proposé et je vous tiens au courant.
merci beaucoup.
JB
"JBF" a écrit dans le message de news: %Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une cellule) les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez m'expliquer d'une façon simple et adaptée à mon niveau je vous
en serais reconnaissant.
Merci d'avance.
JB
Il y aurait un bug apparemment sur cet argument : n = UBound(X, 1)
Tu vois de quoi il peut s'agir?
merci
"M41" a écrit dans le message de news:
4821a847$0$904$Suite
En fait ce n'est vraiement une permutation circulaire que lorsque l'on
enlève le blanc de droite pour le replacer à gauche.
La macro proposée (cas général à priorité lignes) enlève en fait tous les
blancs en réécrivant à droite.
En développant Y on pourrait aussi supprimer d'autres contenus...
Y pourrait être un Array contenant la liste de tous les contenus à
supprimer
La sélection accepte aussi une table de plusieurs lignes....
Cordialement
M41
"M41" a écrit dans le message de news:
4821a651$0$892$RE
Copier cette macro dans l'éditeur (Alt+F11)
puis Insertion Module...
puis copier coller listing
Pour l'utiliser
Sélectionner un vecteur de cellules ou une table (car c'est la solution
générale+++)
Ouvrir : Outils, Macros, Macros
Choisir et lancer la macro : PermutationCirculaireValeur
Sub PermutationCirculaireValeurs()
Dim X As Variant, Y As Variant, R As Range, T As String
Dim h As Integer, i As Integer, j As Integer, k As Integer, n As Integer
'Set R = Range("C1:J1")
Set R = Application.Selection
X = R
n = UBound(X, 1): k = UBound(X, 2): i = k
For h = 1 To n
For i = k To 2 Step -1
If X(h, i) = "" Or X(1, i) = Y Then
Do
For j = i To 1 Step -1
If X(h, j) <> "" Or X(h, j) <> Y Then Exit Do
Next j
Exit For
Loop Until True
X(h, i) = X(h, j)
X(h, j) = Y
End If
Next i
Next h
R = X
End Sub
"JBF" a écrit dans le message de news:
%Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une
cellule) les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en
serais reconnaissant.
Merci d'avance.
JB
Il y aurait un bug apparemment sur cet argument : n = UBound(X, 1)
Tu vois de quoi il peut s'agir?
merci
"M41" <boomerang.pro00@wanadoo.fr> a écrit dans le message de news:
4821a847$0$904$ba4acef3@news.orange.fr...
Suite
En fait ce n'est vraiement une permutation circulaire que lorsque l'on
enlève le blanc de droite pour le replacer à gauche.
La macro proposée (cas général à priorité lignes) enlève en fait tous les
blancs en réécrivant à droite.
En développant Y on pourrait aussi supprimer d'autres contenus...
Y pourrait être un Array contenant la liste de tous les contenus à
supprimer
La sélection accepte aussi une table de plusieurs lignes....
Cordialement
M41
"M41" <boomerang.pro00@wanadoo.fr> a écrit dans le message de news:
4821a651$0$892$ba4acef3@news.orange.fr...
RE
Copier cette macro dans l'éditeur (Alt+F11)
puis Insertion Module...
puis copier coller listing
Pour l'utiliser
Sélectionner un vecteur de cellules ou une table (car c'est la solution
générale+++)
Ouvrir : Outils, Macros, Macros
Choisir et lancer la macro : PermutationCirculaireValeur
Sub PermutationCirculaireValeurs()
Dim X As Variant, Y As Variant, R As Range, T As String
Dim h As Integer, i As Integer, j As Integer, k As Integer, n As Integer
'Set R = Range("C1:J1")
Set R = Application.Selection
X = R
n = UBound(X, 1): k = UBound(X, 2): i = k
For h = 1 To n
For i = k To 2 Step -1
If X(h, i) = "" Or X(1, i) = Y Then
Do
For j = i To 1 Step -1
If X(h, j) <> "" Or X(h, j) <> Y Then Exit Do
Next j
Exit For
Loop Until True
X(h, i) = X(h, j)
X(h, j) = Y
End If
Next i
Next h
R = X
End Sub
"JBF" <nospam-jbfield@free.fr> a écrit dans le message de news:
%235GwfnCsIHA.4376@TK2MSFTNGP06.phx.gbl...
Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une
cellule) les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en
serais reconnaissant.
Merci d'avance.
JB
Il y aurait un bug apparemment sur cet argument : n = UBound(X, 1)
Tu vois de quoi il peut s'agir?
merci
"M41" a écrit dans le message de news:
4821a847$0$904$Suite
En fait ce n'est vraiement une permutation circulaire que lorsque l'on
enlève le blanc de droite pour le replacer à gauche.
La macro proposée (cas général à priorité lignes) enlève en fait tous les
blancs en réécrivant à droite.
En développant Y on pourrait aussi supprimer d'autres contenus...
Y pourrait être un Array contenant la liste de tous les contenus à
supprimer
La sélection accepte aussi une table de plusieurs lignes....
Cordialement
M41
"M41" a écrit dans le message de news:
4821a651$0$892$RE
Copier cette macro dans l'éditeur (Alt+F11)
puis Insertion Module...
puis copier coller listing
Pour l'utiliser
Sélectionner un vecteur de cellules ou une table (car c'est la solution
générale+++)
Ouvrir : Outils, Macros, Macros
Choisir et lancer la macro : PermutationCirculaireValeur
Sub PermutationCirculaireValeurs()
Dim X As Variant, Y As Variant, R As Range, T As String
Dim h As Integer, i As Integer, j As Integer, k As Integer, n As Integer
'Set R = Range("C1:J1")
Set R = Application.Selection
X = R
n = UBound(X, 1): k = UBound(X, 2): i = k
For h = 1 To n
For i = k To 2 Step -1
If X(h, i) = "" Or X(1, i) = Y Then
Do
For j = i To 1 Step -1
If X(h, j) <> "" Or X(h, j) <> Y Then Exit Do
Next j
Exit For
Loop Until True
X(h, i) = X(h, j)
X(h, j) = Y
End If
Next i
Next h
R = X
End Sub
"JBF" a écrit dans le message de news:
%Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une
cellule) les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en
serais reconnaissant.
Merci d'avance.
JB
Il y aurait un bug apparemment sur cet argument : n = UBound(X, 1)
Tu vois de quoi il peut s'agir?
merci
"M41" a écrit dans le message de news:
4821a847$0$904$Suite
En fait ce n'est vraiement une permutation circulaire que lorsque l'on
enlève le blanc de droite pour le replacer à gauche.
La macro proposée (cas général à priorité lignes) enlève en fait tous les
blancs en réécrivant à droite.
En développant Y on pourrait aussi supprimer d'autres contenus...
Y pourrait être un Array contenant la liste de tous les contenus à
supprimer
La sélection accepte aussi une table de plusieurs lignes....
Cordialement
M41
"M41" a écrit dans le message de news:
4821a651$0$892$RE
Copier cette macro dans l'éditeur (Alt+F11)
puis Insertion Module...
puis copier coller listing
Pour l'utiliser
Sélectionner un vecteur de cellules ou une table (car c'est la solution
générale+++)
Ouvrir : Outils, Macros, Macros
Choisir et lancer la macro : PermutationCirculaireValeur
Sub PermutationCirculaireValeurs()
Dim X As Variant, Y As Variant, R As Range, T As String
Dim h As Integer, i As Integer, j As Integer, k As Integer, n As Integer
'Set R = Range("C1:J1")
Set R = Application.Selection
X = R
n = UBound(X, 1): k = UBound(X, 2): i = k
For h = 1 To n
For i = k To 2 Step -1
If X(h, i) = "" Or X(1, i) = Y Then
Do
For j = i To 1 Step -1
If X(h, j) <> "" Or X(h, j) <> Y Then Exit Do
Next j
Exit For
Loop Until True
X(h, i) = X(h, j)
X(h, j) = Y
End If
Next i
Next h
R = X
End Sub
"JBF" a écrit dans le message de news:
%Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une
cellule) les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en
serais reconnaissant.
Merci d'avance.
JB
Il y aurait un bug apparemment sur cet argument : n = UBound(X, 1)
Tu vois de quoi il peut s'agir?
merci
"M41" <boomerang.pro00@wanadoo.fr> a écrit dans le message de news:
4821a847$0$904$ba4acef3@news.orange.fr...
Suite
En fait ce n'est vraiement une permutation circulaire que lorsque l'on
enlève le blanc de droite pour le replacer à gauche.
La macro proposée (cas général à priorité lignes) enlève en fait tous les
blancs en réécrivant à droite.
En développant Y on pourrait aussi supprimer d'autres contenus...
Y pourrait être un Array contenant la liste de tous les contenus à
supprimer
La sélection accepte aussi une table de plusieurs lignes....
Cordialement
M41
"M41" <boomerang.pro00@wanadoo.fr> a écrit dans le message de news:
4821a651$0$892$ba4acef3@news.orange.fr...
RE
Copier cette macro dans l'éditeur (Alt+F11)
puis Insertion Module...
puis copier coller listing
Pour l'utiliser
Sélectionner un vecteur de cellules ou une table (car c'est la solution
générale+++)
Ouvrir : Outils, Macros, Macros
Choisir et lancer la macro : PermutationCirculaireValeur
Sub PermutationCirculaireValeurs()
Dim X As Variant, Y As Variant, R As Range, T As String
Dim h As Integer, i As Integer, j As Integer, k As Integer, n As Integer
'Set R = Range("C1:J1")
Set R = Application.Selection
X = R
n = UBound(X, 1): k = UBound(X, 2): i = k
For h = 1 To n
For i = k To 2 Step -1
If X(h, i) = "" Or X(1, i) = Y Then
Do
For j = i To 1 Step -1
If X(h, j) <> "" Or X(h, j) <> Y Then Exit Do
Next j
Exit For
Loop Until True
X(h, i) = X(h, j)
X(h, j) = Y
End If
Next i
Next h
R = X
End Sub
"JBF" <nospam-jbfield@free.fr> a écrit dans le message de news:
%235GwfnCsIHA.4376@TK2MSFTNGP06.phx.gbl...
Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une
cellule) les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en
serais reconnaissant.
Merci d'avance.
JB
Il y aurait un bug apparemment sur cet argument : n = UBound(X, 1)
Tu vois de quoi il peut s'agir?
merci
"M41" a écrit dans le message de news:
4821a847$0$904$Suite
En fait ce n'est vraiement une permutation circulaire que lorsque l'on
enlève le blanc de droite pour le replacer à gauche.
La macro proposée (cas général à priorité lignes) enlève en fait tous les
blancs en réécrivant à droite.
En développant Y on pourrait aussi supprimer d'autres contenus...
Y pourrait être un Array contenant la liste de tous les contenus à
supprimer
La sélection accepte aussi une table de plusieurs lignes....
Cordialement
M41
"M41" a écrit dans le message de news:
4821a651$0$892$RE
Copier cette macro dans l'éditeur (Alt+F11)
puis Insertion Module...
puis copier coller listing
Pour l'utiliser
Sélectionner un vecteur de cellules ou une table (car c'est la solution
générale+++)
Ouvrir : Outils, Macros, Macros
Choisir et lancer la macro : PermutationCirculaireValeur
Sub PermutationCirculaireValeurs()
Dim X As Variant, Y As Variant, R As Range, T As String
Dim h As Integer, i As Integer, j As Integer, k As Integer, n As Integer
'Set R = Range("C1:J1")
Set R = Application.Selection
X = R
n = UBound(X, 1): k = UBound(X, 2): i = k
For h = 1 To n
For i = k To 2 Step -1
If X(h, i) = "" Or X(1, i) = Y Then
Do
For j = i To 1 Step -1
If X(h, j) <> "" Or X(h, j) <> Y Then Exit Do
Next j
Exit For
Loop Until True
X(h, i) = X(h, j)
X(h, j) = Y
End If
Next i
Next h
R = X
End Sub
"JBF" a écrit dans le message de news:
%Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une
cellule) les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en
serais reconnaissant.
Merci d'avance.
JB
Il y aurait un bug apparemment sur cet argument : n = UBound(X, 1)
Tu vois de quoi il peut s'agir?
merci
"M41" a écrit dans le message de news:
4821a847$0$904$Suite
En fait ce n'est vraiement une permutation circulaire que lorsque l'on
enlève le blanc de droite pour le replacer à gauche.
La macro proposée (cas général à priorité lignes) enlève en fait tous les
blancs en réécrivant à droite.
En développant Y on pourrait aussi supprimer d'autres contenus...
Y pourrait être un Array contenant la liste de tous les contenus à
supprimer
La sélection accepte aussi une table de plusieurs lignes....
Cordialement
M41
"M41" a écrit dans le message de news:
4821a651$0$892$RE
Copier cette macro dans l'éditeur (Alt+F11)
puis Insertion Module...
puis copier coller listing
Pour l'utiliser
Sélectionner un vecteur de cellules ou une table (car c'est la solution
générale+++)
Ouvrir : Outils, Macros, Macros
Choisir et lancer la macro : PermutationCirculaireValeur
Sub PermutationCirculaireValeurs()
Dim X As Variant, Y As Variant, R As Range, T As String
Dim h As Integer, i As Integer, j As Integer, k As Integer, n As Integer
'Set R = Range("C1:J1")
Set R = Application.Selection
X = R
n = UBound(X, 1): k = UBound(X, 2): i = k
For h = 1 To n
For i = k To 2 Step -1
If X(h, i) = "" Or X(1, i) = Y Then
Do
For j = i To 1 Step -1
If X(h, j) <> "" Or X(h, j) <> Y Then Exit Do
Next j
Exit For
Loop Until True
X(h, i) = X(h, j)
X(h, j) = Y
End If
Next i
Next h
R = X
End Sub
"JBF" a écrit dans le message de news:
%Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une
cellule) les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en
serais reconnaissant.
Merci d'avance.
JB
Il y aurait un bug apparemment sur cet argument : n = UBound(X, 1)
Tu vois de quoi il peut s'agir?
merci
"M41" <boomerang.pro00@wanadoo.fr> a écrit dans le message de news:
4821a847$0$904$ba4acef3@news.orange.fr...
Suite
En fait ce n'est vraiement une permutation circulaire que lorsque l'on
enlève le blanc de droite pour le replacer à gauche.
La macro proposée (cas général à priorité lignes) enlève en fait tous les
blancs en réécrivant à droite.
En développant Y on pourrait aussi supprimer d'autres contenus...
Y pourrait être un Array contenant la liste de tous les contenus à
supprimer
La sélection accepte aussi une table de plusieurs lignes....
Cordialement
M41
"M41" <boomerang.pro00@wanadoo.fr> a écrit dans le message de news:
4821a651$0$892$ba4acef3@news.orange.fr...
RE
Copier cette macro dans l'éditeur (Alt+F11)
puis Insertion Module...
puis copier coller listing
Pour l'utiliser
Sélectionner un vecteur de cellules ou une table (car c'est la solution
générale+++)
Ouvrir : Outils, Macros, Macros
Choisir et lancer la macro : PermutationCirculaireValeur
Sub PermutationCirculaireValeurs()
Dim X As Variant, Y As Variant, R As Range, T As String
Dim h As Integer, i As Integer, j As Integer, k As Integer, n As Integer
'Set R = Range("C1:J1")
Set R = Application.Selection
X = R
n = UBound(X, 1): k = UBound(X, 2): i = k
For h = 1 To n
For i = k To 2 Step -1
If X(h, i) = "" Or X(1, i) = Y Then
Do
For j = i To 1 Step -1
If X(h, j) <> "" Or X(h, j) <> Y Then Exit Do
Next j
Exit For
Loop Until True
X(h, i) = X(h, j)
X(h, j) = Y
End If
Next i
Next h
R = X
End Sub
"JBF" <nospam-jbfield@free.fr> a écrit dans le message de news:
%235GwfnCsIHA.4376@TK2MSFTNGP06.phx.gbl...
Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une
cellule) les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en
serais reconnaissant.
Merci d'avance.
JB
Il y aurait un bug apparemment sur cet argument : n = UBound(X, 1)
Tu vois de quoi il peut s'agir?
merci
"M41" a écrit dans le message de news:
4821a847$0$904$Suite
En fait ce n'est vraiement une permutation circulaire que lorsque l'on
enlève le blanc de droite pour le replacer à gauche.
La macro proposée (cas général à priorité lignes) enlève en fait tous les
blancs en réécrivant à droite.
En développant Y on pourrait aussi supprimer d'autres contenus...
Y pourrait être un Array contenant la liste de tous les contenus à
supprimer
La sélection accepte aussi une table de plusieurs lignes....
Cordialement
M41
"M41" a écrit dans le message de news:
4821a651$0$892$RE
Copier cette macro dans l'éditeur (Alt+F11)
puis Insertion Module...
puis copier coller listing
Pour l'utiliser
Sélectionner un vecteur de cellules ou une table (car c'est la solution
générale+++)
Ouvrir : Outils, Macros, Macros
Choisir et lancer la macro : PermutationCirculaireValeur
Sub PermutationCirculaireValeurs()
Dim X As Variant, Y As Variant, R As Range, T As String
Dim h As Integer, i As Integer, j As Integer, k As Integer, n As Integer
'Set R = Range("C1:J1")
Set R = Application.Selection
X = R
n = UBound(X, 1): k = UBound(X, 2): i = k
For h = 1 To n
For i = k To 2 Step -1
If X(h, i) = "" Or X(1, i) = Y Then
Do
For j = i To 1 Step -1
If X(h, j) <> "" Or X(h, j) <> Y Then Exit Do
Next j
Exit For
Loop Until True
X(h, i) = X(h, j)
X(h, j) = Y
End If
Next i
Next h
R = X
End Sub
"JBF" a écrit dans le message de news:
%Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une
cellule) les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en
serais reconnaissant.
Merci d'avance.
JB
Est-ce à dire que tu as un certain nombre de lignes
contenant des données de C1 à I1, d'autres de D1 à J1
et d'autres qui ne contiennent rien.
Tu voudrais alors décaler vers la droite toutes les lignes qui
contiennent des données de C1 à I1 ?
Ai-je bien compris ?
Serge
"JBF" a écrit dans le message de news:Merci à vous trois,
Pour répondre à LSteph, J1 est ma dernière colonne et si celle-ci est
vide par rapport à mise en page cela signifie qu'il y a une erreur et que
l'ensemble de la ligne est décalée d'une cellule vers la gauche. D'où ma
volonté de décaler cette ligne d'une cellule sur la droite pour que mon
tableau ressemble à qq. chose.
Pour répondre au dernier message de SERGE qui s'étonne de ma volonté
d'avoir une macro. La réponse est simple. J'ai une vingtaine de tableau
avec ce Pb là. (ça vient d'un fichier texte qui ne permettait pas 100% de
mise en page conforme!). Chaque tableau comporte entre 10.000 et 20.000
lignes donc je ne peux pas faire ça manuellement et biensur toutes les
lignes ne sont pas concernées.
Enfin dernière chose. vous êtes plusieurs à m'avoir gentiment proposé
plusieurs macros différentes. Ce qui m'étonne c'est que celle proposé par
SERGE est bcp plus simple que les autres. Il y a une explication.
de tte façon je vais déjà essayer ce qui m'a été proposé et je vous tiens
au courant.
merci beaucoup.
JB
"JBF" a écrit dans le message de news:
%Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une cellule)
les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en serais
reconnaissant.
Merci d'avance.
JB
Est-ce à dire que tu as un certain nombre de lignes
contenant des données de C1 à I1, d'autres de D1 à J1
et d'autres qui ne contiennent rien.
Tu voudrais alors décaler vers la droite toutes les lignes qui
contiennent des données de C1 à I1 ?
Ai-je bien compris ?
Serge
"JBF" <nospam-jbfield@free.fr> a écrit dans le message de news:
ODK8yXEsIHA.1220@TK2MSFTNGP04.phx.gbl...
Merci à vous trois,
Pour répondre à LSteph, J1 est ma dernière colonne et si celle-ci est
vide par rapport à mise en page cela signifie qu'il y a une erreur et que
l'ensemble de la ligne est décalée d'une cellule vers la gauche. D'où ma
volonté de décaler cette ligne d'une cellule sur la droite pour que mon
tableau ressemble à qq. chose.
Pour répondre au dernier message de SERGE qui s'étonne de ma volonté
d'avoir une macro. La réponse est simple. J'ai une vingtaine de tableau
avec ce Pb là. (ça vient d'un fichier texte qui ne permettait pas 100% de
mise en page conforme!). Chaque tableau comporte entre 10.000 et 20.000
lignes donc je ne peux pas faire ça manuellement et biensur toutes les
lignes ne sont pas concernées.
Enfin dernière chose. vous êtes plusieurs à m'avoir gentiment proposé
plusieurs macros différentes. Ce qui m'étonne c'est que celle proposé par
SERGE est bcp plus simple que les autres. Il y a une explication.
de tte façon je vais déjà essayer ce qui m'a été proposé et je vous tiens
au courant.
merci beaucoup.
JB
"JBF" <nospam-jbfield@free.fr> a écrit dans le message de news:
%235GwfnCsIHA.4376@TK2MSFTNGP06.phx.gbl...
Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une cellule)
les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en serais
reconnaissant.
Merci d'avance.
JB
Est-ce à dire que tu as un certain nombre de lignes
contenant des données de C1 à I1, d'autres de D1 à J1
et d'autres qui ne contiennent rien.
Tu voudrais alors décaler vers la droite toutes les lignes qui
contiennent des données de C1 à I1 ?
Ai-je bien compris ?
Serge
"JBF" a écrit dans le message de news:Merci à vous trois,
Pour répondre à LSteph, J1 est ma dernière colonne et si celle-ci est
vide par rapport à mise en page cela signifie qu'il y a une erreur et que
l'ensemble de la ligne est décalée d'une cellule vers la gauche. D'où ma
volonté de décaler cette ligne d'une cellule sur la droite pour que mon
tableau ressemble à qq. chose.
Pour répondre au dernier message de SERGE qui s'étonne de ma volonté
d'avoir une macro. La réponse est simple. J'ai une vingtaine de tableau
avec ce Pb là. (ça vient d'un fichier texte qui ne permettait pas 100% de
mise en page conforme!). Chaque tableau comporte entre 10.000 et 20.000
lignes donc je ne peux pas faire ça manuellement et biensur toutes les
lignes ne sont pas concernées.
Enfin dernière chose. vous êtes plusieurs à m'avoir gentiment proposé
plusieurs macros différentes. Ce qui m'étonne c'est que celle proposé par
SERGE est bcp plus simple que les autres. Il y a une explication.
de tte façon je vais déjà essayer ce qui m'a été proposé et je vous tiens
au courant.
merci beaucoup.
JB
"JBF" a écrit dans le message de news:
%Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une cellule)
les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en serais
reconnaissant.
Merci d'avance.
JB
Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une cellule)
les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en serais
reconnaissant.
Merci d'avance.
JB
Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une cellule)
les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en serais
reconnaissant.
Merci d'avance.
JB
Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une cellule)
les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en serais
reconnaissant.
Merci d'avance.
JB
Autre version
plus limité par le nombre de lignes ou la taille des tableaux (>65000
lignes)
en changeant la valeur de C en true ou false , on change le mode de
fonctionnement
si True : tout est tassé à droite
si False : le tassement ne se fait que pour la dernière colonne
Bon ce sera tout pour aujourd'hui.
Cordialement
M41
_______________________________________
Private Const C As Boolean = False ' True
'
Sub MiseDroiteValeurs2()
Dim X As Variant, Y As Variant, R As Range, R2 As Range, C2 As Boolean
Dim h As Integer, i As Integer, j As Integer, k As Integer, n As Long
On Error GoTo E_MiseDroiteValeurs2
Set R = Application.Selection
n = R.Rows.Count: h = 1
Do
Set R2 = R.Rows(h): X = R2
k = UBound(X, 2)
C2 = (X(1, 1) = "") Or (X(1, 1) = Y)
For i = k To 2 Step -1
If C Then
If X(1, i) = "" Or X(1, i) = Y Then
Do
For j = i To 1 Step -1
If X(1, j) <> "" Or X(1, j) <> Y Then Exit Do
Next j
Exit For
Loop Until True
X(1, i) = X(1, j)
X(1, j) = Y
End If
ElseIf C2 Then
X(1, i) = X(1, i - 1)
End If
Next i
R2 = X
C2 = False
h = h + 1
Loop Until h > n
Exit Sub
E_MiseDroiteValeurs2:
End Sub
"JBF" a écrit dans le message de news:
%Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une cellule)
les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en serais
reconnaissant.
Merci d'avance.
JB
Autre version
plus limité par le nombre de lignes ou la taille des tableaux (>65000
lignes)
en changeant la valeur de C en true ou false , on change le mode de
fonctionnement
si True : tout est tassé à droite
si False : le tassement ne se fait que pour la dernière colonne
Bon ce sera tout pour aujourd'hui.
Cordialement
M41
_______________________________________
Private Const C As Boolean = False ' True
'
Sub MiseDroiteValeurs2()
Dim X As Variant, Y As Variant, R As Range, R2 As Range, C2 As Boolean
Dim h As Integer, i As Integer, j As Integer, k As Integer, n As Long
On Error GoTo E_MiseDroiteValeurs2
Set R = Application.Selection
n = R.Rows.Count: h = 1
Do
Set R2 = R.Rows(h): X = R2
k = UBound(X, 2)
C2 = (X(1, 1) = "") Or (X(1, 1) = Y)
For i = k To 2 Step -1
If C Then
If X(1, i) = "" Or X(1, i) = Y Then
Do
For j = i To 1 Step -1
If X(1, j) <> "" Or X(1, j) <> Y Then Exit Do
Next j
Exit For
Loop Until True
X(1, i) = X(1, j)
X(1, j) = Y
End If
ElseIf C2 Then
X(1, i) = X(1, i - 1)
End If
Next i
R2 = X
C2 = False
h = h + 1
Loop Until h > n
Exit Sub
E_MiseDroiteValeurs2:
End Sub
"JBF" <nospam-jbfield@free.fr> a écrit dans le message de news:
%235GwfnCsIHA.4376@TK2MSFTNGP06.phx.gbl...
Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une cellule)
les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en serais
reconnaissant.
Merci d'avance.
JB
Autre version
plus limité par le nombre de lignes ou la taille des tableaux (>65000
lignes)
en changeant la valeur de C en true ou false , on change le mode de
fonctionnement
si True : tout est tassé à droite
si False : le tassement ne se fait que pour la dernière colonne
Bon ce sera tout pour aujourd'hui.
Cordialement
M41
_______________________________________
Private Const C As Boolean = False ' True
'
Sub MiseDroiteValeurs2()
Dim X As Variant, Y As Variant, R As Range, R2 As Range, C2 As Boolean
Dim h As Integer, i As Integer, j As Integer, k As Integer, n As Long
On Error GoTo E_MiseDroiteValeurs2
Set R = Application.Selection
n = R.Rows.Count: h = 1
Do
Set R2 = R.Rows(h): X = R2
k = UBound(X, 2)
C2 = (X(1, 1) = "") Or (X(1, 1) = Y)
For i = k To 2 Step -1
If C Then
If X(1, i) = "" Or X(1, i) = Y Then
Do
For j = i To 1 Step -1
If X(1, j) <> "" Or X(1, j) <> Y Then Exit Do
Next j
Exit For
Loop Until True
X(1, i) = X(1, j)
X(1, j) = Y
End If
ElseIf C2 Then
X(1, i) = X(1, i - 1)
End If
Next i
R2 = X
C2 = False
h = h + 1
Loop Until h > n
Exit Sub
E_MiseDroiteValeurs2:
End Sub
"JBF" a écrit dans le message de news:
%Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une cellule)
les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en serais
reconnaissant.
Merci d'avance.
JB
Merci à vous trois,
Pour répondre à LSteph, J1 est ma dernière colonne et si celle-ci est vide
par rapport à mise en page cela signifie qu'il y a une erreur et que
l'ensemble de la ligne est décalée d'une cellule vers la gauche. D'où ma
volonté de décaler cette ligne d'une cellule sur la droite pour que mon
tableau ressemble à qq. chose.
Pour répondre au dernier message de SERGE qui s'étonne de ma volonté d'avoir
une macro. La réponse est simple. J'ai une vingtaine de tableau avec ce Pb
là. (ça vient d'un fichier texte qui ne permettait pas 100% de mise en page
conforme!). Chaque tableau comporte entre 10.000 et 20.000 lignes donc je ne
peux pas faire ça manuellement et biensur toutes les lignes ne sont pas
concernées.
Enfin dernière chose. vous êtes plusieurs à m'avoir gentiment proposé
plusieurs macros différentes. Ce qui m'étonne c'est que celle proposé par
SERGE est bcp plus simple que les autres. Il y a une explication.
de tte façon je vais déjà essayer ce qui m'a été proposé et je vous tiens au
courant.
merci beaucoup.
JB
"JBF" a écrit dans le message de news:
%Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une cellule)
les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en serais
reconnaissant.
Merci d'avance.
JB
Merci à vous trois,
Pour répondre à LSteph, J1 est ma dernière colonne et si celle-ci est vide
par rapport à mise en page cela signifie qu'il y a une erreur et que
l'ensemble de la ligne est décalée d'une cellule vers la gauche. D'où ma
volonté de décaler cette ligne d'une cellule sur la droite pour que mon
tableau ressemble à qq. chose.
Pour répondre au dernier message de SERGE qui s'étonne de ma volonté d'avoir
une macro. La réponse est simple. J'ai une vingtaine de tableau avec ce Pb
là. (ça vient d'un fichier texte qui ne permettait pas 100% de mise en page
conforme!). Chaque tableau comporte entre 10.000 et 20.000 lignes donc je ne
peux pas faire ça manuellement et biensur toutes les lignes ne sont pas
concernées.
Enfin dernière chose. vous êtes plusieurs à m'avoir gentiment proposé
plusieurs macros différentes. Ce qui m'étonne c'est que celle proposé par
SERGE est bcp plus simple que les autres. Il y a une explication.
de tte façon je vais déjà essayer ce qui m'a été proposé et je vous tiens au
courant.
merci beaucoup.
JB
"JBF" <nospam-jbfield@free.fr> a écrit dans le message de news:
%235GwfnCsIHA.4376@TK2MSFTNGP06.phx.gbl...
Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une cellule)
les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en serais
reconnaissant.
Merci d'avance.
JB
Merci à vous trois,
Pour répondre à LSteph, J1 est ma dernière colonne et si celle-ci est vide
par rapport à mise en page cela signifie qu'il y a une erreur et que
l'ensemble de la ligne est décalée d'une cellule vers la gauche. D'où ma
volonté de décaler cette ligne d'une cellule sur la droite pour que mon
tableau ressemble à qq. chose.
Pour répondre au dernier message de SERGE qui s'étonne de ma volonté d'avoir
une macro. La réponse est simple. J'ai une vingtaine de tableau avec ce Pb
là. (ça vient d'un fichier texte qui ne permettait pas 100% de mise en page
conforme!). Chaque tableau comporte entre 10.000 et 20.000 lignes donc je ne
peux pas faire ça manuellement et biensur toutes les lignes ne sont pas
concernées.
Enfin dernière chose. vous êtes plusieurs à m'avoir gentiment proposé
plusieurs macros différentes. Ce qui m'étonne c'est que celle proposé par
SERGE est bcp plus simple que les autres. Il y a une explication.
de tte façon je vais déjà essayer ce qui m'a été proposé et je vous tiens au
courant.
merci beaucoup.
JB
"JBF" a écrit dans le message de news:
%Bonjour,
Existe t-il une formule pour décaler physiquement des cellules?
Je voudrais dire que si J1="" alors décaler physiquement (d'une cellule)
les cellules C1 à I1 vers la droite.
J'imagine que vous allez me répondre que la seule alternative est une
macro.
Le hic c'est que je n'y connais rien en VBA donc si vous pouviez
m'expliquer d'une façon simple et adaptée à mon niveau je vous en serais
reconnaissant.
Merci d'avance.
JB