Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

RECOPIE INCREMENTEE D'UNE CELLULE CONTENANT UNE FORMULE

7 réponses
Avatar
stiti
Bonjour,

J'ai un fichier excel contenant 2 onglets :

un des onglets contient en colonne, une liste de code (col A) et une liste de prix (col B)

dans l'autre onglet je dois obtenir en ligne :
1° colonne : le code (figurant en A1 de l'onglet précédent)
2° colonne : le prix (figurant en B1 de l'onglet précédent)
3° colonne : cellule vide
puis on recommence
4° colonne : le code (figurant en A2 de l'onglet précédent)
5° colonne : le prix (figurant en B2 de l'onglet précédent)
6° colonne : cellule vide
puis on recommence
7° colonne : le code (figurant en A3 de l'onglet précédent)
8° colonne : le prix (figurant en B3 de l'onglet précédent)
9° colonne : cellule vide

puis on passe à la ligne suivante :
1° colonne : le code (figurant en A4 de l'onglet précédent)
2° colonne : le prix (figurant en B4 de l'onglet précédent)
3° colonne : cellule vide
puis on recommence
4° colonne : le code (figurant en A5 de l'onglet précédent)
5° colonne : le prix (figurant en B5 de l'onglet précédent)
6° colonne : cellule vide
puis on recommence
7° colonne : le code (figurant en A6 de l'onglet précédent)
8° colonne : le prix (figurant en B6 de l'onglet précédent)
9° colonne : cellule vide

etc jusqu'à épuisement des "stocks" (il y a 10000 codes + prix)
....

je cherche un moyen pour automatiser tout ça et ne pas faire de copie manuelle
j'attends votre retour très rapide bien sûr ;)

Merci d'avance

7 réponses

Avatar
Jacquouille
Bonjour
Après une lecture très rapide (estomac vide), je me pose cette question:
votre version d'Excel permet-elle d'avoir autant de colonnes que de lignes?
car si vous avez 25.000 articles en col A, il vous faudrait 25.000
colonnes....

Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"stiti" a écrit dans le message de groupe de discussion :


Bonjour,

J'ai un fichier excel contenant 2 onglets :

un des onglets contient en colonne, une liste de code (col A) et une liste
de
prix (col B)

dans l'autre onglet je dois obtenir en ligne :
1° colonne : le code (figurant en A1 de l'onglet précédent)
2° colonne : le prix (figurant en B1 de l'onglet précédent)
3° colonne : cellule vide
puis on recommence
4° colonne : le code (figurant en A2 de l'onglet précédent)
5° colonne : le prix (figurant en B2 de l'onglet précédent)
6° colonne : cellule vide
puis on recommence
7° colonne : le code (figurant en A3 de l'onglet précédent)
8° colonne : le prix (figurant en B3 de l'onglet précédent)
9° colonne : cellule vide

puis on passe à la ligne suivante :
1° colonne : le code (figurant en A4 de l'onglet précédent)
2° colonne : le prix (figurant en B4 de l'onglet précédent)
3° colonne : cellule vide
puis on recommence
4° colonne : le code (figurant en A5 de l'onglet précédent)
5° colonne : le prix (figurant en B5 de l'onglet précédent)
6° colonne : cellule vide
puis on recommence
7° colonne : le code (figurant en A6 de l'onglet précédent)
8° colonne : le prix (figurant en B6 de l'onglet précédent)
9° colonne : cellule vide

etc jusqu'à épuisement des "stocks" (il y a 10000 codes + prix)
...

je cherche un moyen pour automatiser tout ça et ne pas faire de copie
manuelle
j'attends votre retour très rapide bien sûr ;)

Merci d'avance


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
stiti
Le mercredi 30 Décembre 2015 à 11:54 par stiti :
Bonjour,

J'ai un fichier excel contenant 2 onglets :

un des onglets contient en colonne, une liste de code (col A) et une liste de
prix (col B)

dans l'autre onglet je dois obtenir en ligne :
1° colonne : le code (figurant en A1 de l'onglet précédent)
2° colonne : le prix (figurant en B1 de l'onglet précédent)
3° colonne : cellule vide
puis on recommence
4° colonne : le code (figurant en A2 de l'onglet précédent)
5° colonne : le prix (figurant en B2 de l'onglet précédent)
6° colonne : cellule vide
puis on recommence
7° colonne : le code (figurant en A3 de l'onglet précédent)
8° colonne : le prix (figurant en B3 de l'onglet précédent)
9° colonne : cellule vide

puis on passe à la ligne suivante :
1° colonne : le code (figurant en A4 de l'onglet précédent)
2° colonne : le prix (figurant en B4 de l'onglet précédent)
3° colonne : cellule vide
puis on recommence
4° colonne : le code (figurant en A5 de l'onglet précédent)
5° colonne : le prix (figurant en B5 de l'onglet précédent)
6° colonne : cellule vide
puis on recommence
7° colonne : le code (figurant en A6 de l'onglet précédent)
8° colonne : le prix (figurant en B6 de l'onglet précédent)
9° colonne : cellule vide

etc jusqu'à épuisement des "stocks" (il y a 10000 codes
+ prix)
....

je cherche un moyen pour automatiser tout ça et ne pas faire de copie
manuelle
j'attends votre retour très rapide bien sûr ;)

Merci d'avance


Bonjour

Je n'ai pas besoin de 10 000 colonnes, puisqu'en ligne je vais avoir 10 codes + 10 prix + 9 vides (soit 29 colonnes) (1 code + son prix + 1 vide) et que tous les 10 codes je vais à la ligne ....
Version excel 2013
merci pour votre attention
Avatar
MichD
Bonjour,

Essaie ceci...

Et pour Jacquouille, à partir de la version 2007, une feuille de calcul
contient 16384 colonnes (=2^14)

'---------------------------------------------------------------------------------
Sub test()
Dim Rg As Range, C As Range, Compteur As Long
Dim Colonne As Long, Ligne As Long
Dim Sh As Worksheet, Sh1 As Worksheet

Application.ScreenUpdating = False
Application.EnableEvents = False

Set Sh = Worksheets("Feuil1") 'feuille où sont les données, à adapter
Set Sh1 = Worksheets("Feuil2") 'Feuille où seront copiées les données, à adapter

With Sh
'Ceci suppose que les données débutent en cellule A1
Set Rg = .Range("A1:B" & .Range("A" & .Cells.Rows.Count).End(xlUp).Row)
End With

'Où la copie débutera dans la feuille résultant.
Colonne = 1 'Première colonne
Ligne = 1 'Première ligne

For Each C In Rg.Rows
Compteur = Compteur + 1
C.Copy Sh1.Cells(Ligne, Colonne)
Colonne = Colonne + 3
'Dès que le compteur arrive à 8,
'remise des variables à la valeur initiale
'pour passer à la ligne suivante.
If Compteur Mod 8 = 0 Then
Ligne = Ligne + 1
Colonne = 1
End If
Next
Application.ScreenUpdating = True
Application.EnableEvents = True

End Sub
'---------------------------------------------------------------------------------
Avatar
Jacquouille
Hello Denis

Ok pour le nb de col en 2007.
Voici la ligne qui m'a effrayé. ( mais j'avais l'estomac vide ...)
etc jusqu'à épuisement des "stocks" (il y a 10000 codes + prix)






... et j'avais lu, trop hâtivement, que ces 10.000 codes-prix devaient se
retrouver en col .
Mea culpa!

Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
n60nv1$sui$

Bonjour,

Essaie ceci...

Et pour Jacquouille, à partir de la version 2007, une feuille de calcul
contient 16384 colonnes (=2^14)

'---------------------------------------------------------------------------------
Sub test()
Dim Rg As Range, C As Range, Compteur As Long
Dim Colonne As Long, Ligne As Long
Dim Sh As Worksheet, Sh1 As Worksheet

Application.ScreenUpdating = False
Application.EnableEvents = False

Set Sh = Worksheets("Feuil1") 'feuille où sont les données, à adapter
Set Sh1 = Worksheets("Feuil2") 'Feuille où seront copiées les données, à
adapter

With Sh
'Ceci suppose que les données débutent en cellule A1
Set Rg = .Range("A1:B" & .Range("A" & .Cells.Rows.Count).End(xlUp).Row)
End With

'Où la copie débutera dans la feuille résultant.
Colonne = 1 'Première colonne
Ligne = 1 'Première ligne

For Each C In Rg.Rows
Compteur = Compteur + 1
C.Copy Sh1.Cells(Ligne, Colonne)
Colonne = Colonne + 3
'Dès que le compteur arrive à 8,
'remise des variables à la valeur initiale
'pour passer à la ligne suivante.
If Compteur Mod 8 = 0 Then
Ligne = Ligne + 1
Colonne = 1
End If
Next
Application.ScreenUpdating = True
Application.EnableEvents = True

End Sub
'---------------------------------------------------------------------------------


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
stiti
Le mercredi 30 Décembre 2015 à 11:54 par stiti :
Bonjour,

J'ai un fichier excel contenant 2 onglets :

un des onglets contient en colonne, une liste de code (col A) et une liste de
prix (col B)

dans l'autre onglet je dois obtenir en ligne :
1° colonne : le code (figurant en A1 de l'onglet précédent)
2° colonne : le prix (figurant en B1 de l'onglet précédent)
3° colonne : cellule vide
puis on recommence
4° colonne : le code (figurant en A2 de l'onglet précédent)
5° colonne : le prix (figurant en B2 de l'onglet précédent)
6° colonne : cellule vide
puis on recommence
7° colonne : le code (figurant en A3 de l'onglet précédent)
8° colonne : le prix (figurant en B3 de l'onglet précédent)
9° colonne : cellule vide

puis on passe à la ligne suivante :
1° colonne : le code (figurant en A4 de l'onglet précédent)
2° colonne : le prix (figurant en B4 de l'onglet précédent)
3° colonne : cellule vide
puis on recommence
4° colonne : le code (figurant en A5 de l'onglet précédent)
5° colonne : le prix (figurant en B5 de l'onglet précédent)
6° colonne : cellule vide
puis on recommence
7° colonne : le code (figurant en A6 de l'onglet précédent)
8° colonne : le prix (figurant en B6 de l'onglet précédent)
9° colonne : cellule vide

etc jusqu'à épuisement des "stocks" (il y a 10000 codes
+ prix)
....

je cherche un moyen pour automatiser tout ça et ne pas faire de copie
manuelle
j'attends votre retour très rapide bien sûr ;)

Merci d'avance


MichD
Merci infiniment c'est exactement ce que je voulais !!
Juste une chose, comment faire pour que le résultat soit dans un format (police + taille de police) défini = Arial 9
Il ne manque plus que cela pour que ce soit parfait !
Avatar
stiti
Le mercredi 30 Décembre 2015 à 11:54 par stiti :
Bonjour,

J'ai un fichier excel contenant 2 onglets :

un des onglets contient en colonne, une liste de code (col A) et une liste de
prix (col B)

dans l'autre onglet je dois obtenir en ligne :
1° colonne : le code (figurant en A1 de l'onglet précédent)
2° colonne : le prix (figurant en B1 de l'onglet précédent)
3° colonne : cellule vide
puis on recommence
4° colonne : le code (figurant en A2 de l'onglet précédent)
5° colonne : le prix (figurant en B2 de l'onglet précédent)
6° colonne : cellule vide
puis on recommence
7° colonne : le code (figurant en A3 de l'onglet précédent)
8° colonne : le prix (figurant en B3 de l'onglet précédent)
9° colonne : cellule vide

puis on passe à la ligne suivante :
1° colonne : le code (figurant en A4 de l'onglet précédent)
2° colonne : le prix (figurant en B4 de l'onglet précédent)
3° colonne : cellule vide
puis on recommence
4° colonne : le code (figurant en A5 de l'onglet précédent)
5° colonne : le prix (figurant en B5 de l'onglet précédent)
6° colonne : cellule vide
puis on recommence
7° colonne : le code (figurant en A6 de l'onglet précédent)
8° colonne : le prix (figurant en B6 de l'onglet précédent)
9° colonne : cellule vide

etc jusqu'à épuisement des "stocks" (il y a 10000 codes
+ prix)
....

je cherche un moyen pour automatiser tout ça et ne pas faire de copie
manuelle
j'attends votre retour très rapide bien sûr ;)

Merci d'avance


J'ai trouvé d'où venait mon problème de format : le code copie le format de départ il faut donc bien définir le format de base :)

Merci beaucoup pour votre aide précieuse :)

Bonnes fêtes de fin d'année !
Avatar
MichD
Si tu veux affecter un format particulier à TOUTE LA PLAGE utilisée
dans la feuille des résultats, insère ce qui suit juste AVANT ce bout
de code dans la procédure comme ceci :

With sh1
With .UsedRange
.font.name = "Arial"
.Font.Size = 9
End with
End with

Application.ScreenUpdating = True
Application.EnableEvents = True