Copier données d'une cellule jusqu'à la prochaine non vide et recommencer

Le
suze32
Bonjour,

Je traite des données issus d'un logiciel comptable en l'exportant.

Dans ma colonne A, j'ai une données dans la cellule "A3", "A54", "A85", "=
A87"
(entre toutes ces cellules, les cellules sont vides)

Je souhaiterais pouvoir copier les données de la cellule A3 jusqu'à A53=
, celle de A54 jusqu'à A84 etc jusqu'à la fin de la feuille.

A chaque extraction, les cellules remplies ne seront pas les mêmes.

Merci pour votre aide
Bonne journée,
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
suze32
Le #25878042
J'ai oublié de préciser que ma demande concernait une macro.
Merci d'avance,




Le mardi 17 décembre 2013 14:59:52 UTC+1, suze32 a écrit :
Bonjour,



Je traite des données issus d'un logiciel comptable en l'exportant.



Dans ma colonne A, j'ai une données dans la cellule "A3", "A54", "A85", "A87"...

(entre toutes ces cellules, les cellules sont vides)



Je souhaiterais pouvoir copier les données de la cellule A3 jusqu'à A 53, celle de A54 jusqu'à A84 etc... jusqu'à la fin de la feuille.



A chaque extraction, les cellules remplies ne seront pas les mêmes.



Merci pour votre aide

Bonne journée,
MichD
Le #25878092
Bonjour,


En supposant que j'ai bien compris ta question,
essaie comme ceci. Prends soin d'adapter le nom
de l'onglet de la feuille de la procédure.

'-------------------------------------
Sub test1()
Dim T As Variant
Application.EnableEvents = False
With Worksheets("Feuil1")
T = Split(.Range("A3"), ",")
.Range("A3").Resize(UBound(T)) = Application.Transpose(T)
T = Split(.Range("A54"), ",")
.Range("A54").Resize(UBound(T)) = Application.Transpose(T)
End With
Application.EnableEvents = True
End Sub
'-------------------------------------
suze32
Le #25878142
Merci pour beaucoup pour ton aide, mais le code ne marche pas et je ne pens e pas que cela convienne.

Pour être plus explicite, Dans la cellule "A3" est inscrit "NO", dans la cellule "A54" est inscrit "ES", dans la cellule "A85" est inscrit "FR"... C es codes correspondent à des codes pays.

Je souhaiterais qu'en cellule A4,A5,A6,A7... jusqu'à A53 soit copier dans chaque cellule "NO". Puis que "ES" soit étendu de la cellule A55 à A84 et ainsi de suite pour tous les codes de pays inscrit aléatoirement.

Un fichier vous intéresse peut-être comme modèle?

Merci pour votre aide,
Suzy
MichD
Le #25878132
'------------------------------------------------
Sub test1()
Dim T As Variant
Application.EnableEvents = False
With Worksheets("Feuil1")
.Range("A3:A53") = "NO"
.Range("A54") = "ES"
End With
Application.EnableEvents = True
End Sub
'------------------------------------------------
MichD
Le #25878122
Erreur corrigée.

'------------------------------------------------
Sub test1()
Dim T As Variant
Application.EnableEvents = False
With Worksheets("Feuil1")
.Range("A3:A53") = "NO"
.Range("A55:A84") = "ES"
End With
Application.EnableEvents = True
End Sub
'------------------------------------------------
suze32
Le #25878232
Ce n'est pas encore ça, mais on va y arriver!
Désolé si mes explications ne sont pas très clair, sans fichier c'est difficile...

Les codes sociétés seront toujours différents, exemple : à la proch aine extraction j'aurais NO à la place de ES. A la prochaine extraction, les cellules renseignées ne seront pas les mêmes, exemple, il y a aura un code société en A5, A10, A50...

Je souhaite une macro qui fonctionne à chaque extraction et qui copie le code sociétés (soit les données de la première cellule remplie jusq u'à la dernière cellule vide, puis faire pareil pour la prochaine donn ée).

Merci pour votre aide,
Suzy
MichD
Le #25878262
Tu peux publier un fichier exemple en utilisant le site Cjoint.com
Tu obtiendras une adresse que tu nous transmets ici.

Dans le fichier, tu peux insérer les explications que tu juges
nécessaires...
MichD
Le #25878482
Assure-toi que le nom de la feuille est bon dans la procédure.

'------------------------------------------------
Sub test()
With Worksheets("Extraction")
With .Range("A2:A" &
.Range("B6556").End(xlUp).Row).SpecialCells(xlCellTypeBlanks)
.Formula = "=A" & .Item(1).Row - 1
End With
With .Range("A2:A" & .Range("B6556").End(xlUp).Row)
T = .Value
.Value = T
End With
With .Range("B2:B" & .Range("B6556").End(xlUp).Row)
Set Trouve = .Find(What:="", LookAt:=xlValue)
If Not Trouve Is Nothing Then
Adr = Trouve.Address
Do
If Trouve.Offset(, -1) <> Trouve.Offset(1, -1) Then
Trouve.Offset(, -1) = ""
End If
Set Trouve = .FindNext(Trouve)
Loop Until Adr = Trouve.Address
End If
End With
End With
End Sub
'------------------------------------------------
Jacky
Le #25878582
Bonsoir,

Tester ceci
'--------------
Sub jj()
Dim i As Long
With Sheets("Extraction")
For i = 3 To .Cells(.Rows.Count, 2).End(xlUp).Row
If .Cells(i - 1, 1) <> "" Then
If .Cells(i, 2) <> "" Then .Cells(i, 1).Value = Cells(i - 1, 1).Value
End If
Next
End With
End Sub
'----------------

--
Salutations
JJ


"suze32"
Bonjour,

Je traite des données issus d'un logiciel comptable en l'exportant.

Dans ma colonne A, j'ai une données dans la cellule "A3", "A54", "A85", "A87"...
(entre toutes ces cellules, les cellules sont vides)

Je souhaiterais pouvoir copier les données de la cellule A3 jusqu'à A53, celle de A54 jusqu'à A84 etc...
jusqu'à la fin de la feuille.

A chaque extraction, les cellules remplies ne seront pas les mêmes.

Merci pour votre aide
Bonne journée,
Publicité
Poster une réponse
Anonyme