Bonjour
Je sollicite votre aide pour arriver à ce que je voudrai obtenir par Vba, je suis nul à ce sujet
A partir de la feuille Base
Pièce jointe 373253
Sur la feuille Visite
Pièce jointe 373256
En vous remerciant
Version imprimable
Bonjour
Je sollicite votre aide pour arriver à ce que je voudrai obtenir par Vba, je suis nul à ce sujet
A partir de la feuille Base
Pièce jointe 373253
Sur la feuille Visite
Pièce jointe 373256
En vous remerciant
une proposition "à compléter".
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Sub jean20() DerniereLigne = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row Sheets("visite").Cells.Clear ''''''''''''''''''''''''''' Sheets("base").Range("A1").Copy Sheets("visite").Range("A1") Sheets("visite").Range("A1").Value = Sheets("base").Range("A1").Value & Chr(10) & Sheets("base").Range("J1").Value '' autres entétes lignevisite = 2 For ligne = 2 To DerniereLigne '''''''''''''''''' Sheets("base").Cells(2, 1).Copy Sheets("visite").Cells(lignevisite, 1) Sheets("visite").Cells(lignevisite, 1).Value = Sheets("base").Cells(ligne, 1).Value Sheets("base").Cells(3, 1).Copy Sheets("visite").Cells(lignevisite + 1, 1) Sheets("visite").Cells(lignevisite + 1, 1).Value = Sheets("base").Cells(ligne, 10).Value '' autres lignes lignevisite = lignevisite + 2 Next ligne End Sub
Ca peut être fait sans VBA.
En supposant que ta cellule "Nom" soit A1.
En supposant que tes données sources sont dans l'onglet "source" et le résultat dans l'onglet "dest".
Dans l'onglet "dest",
Mettre en A2 :
Copier A2 en B2Code:=DECALER(source!A$2;(LIGNE()-LIGNE(A$2)/2;0)
Mettre en C2 :
Copier C2 en D2Code:=DECALER(source!F$2;(LIGNE()-LIGNE(C$2)/2;0)
Mettre en A3 :
Copier A3 en B3:D3.Code:=DECALER(source!J$2;(LIGNE()-LIGNE(A$3)/2;0)
Copier A2:D3 vers le bas autant que nécessaire.
Bonjour
Je me trompe sans doute
je crois qu'il manque une parenthèse après le 2
Code:=DECALER(source!A$2;(LIGNE()-LIGNE(A$2)/2);0)
En fait, il manque une parenthèse après le second LIGNE :
idem pour les trois formules.Code:=DECALER(source!A$2;(LIGNE()-LIGNE(A$2))/2;0)
Bonjour a_diard, Menhir
Je vous remercie de donner suite à ma demande, toutefois, le code Vba ne va pas
Pour les formules, la base comportant de 200 à 300 lignes voir plus, je m'interroge
Je vous mets le classeur pour test
En vous remerciant
Merci
je l'avais fait depuis la feuille base
remplacer la première ligne du code par
Code:DerniereLigne = Sheets("Base").Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
dernière ligne de la feuille base.
Bonne journée.