Soucis de recopie de données

Fermé
vieuxray - 1 janv. 2014 à 16:11
 vieuxray - 4 janv. 2014 à 11:13
Bonjour a toutes et tous, forum bonjour

Meilleurs Voeux a tous et bonne année



Excel 2007 VBA

Le petit code ci dessous me permets de recopier de la ligne 18 a 26 des données de cellules sans effacer les formules.
ligne 18 à 20 contiennent une formule avec somme
ligne 21 à 23 pas de formule mais des sommes en euros 128,15 € par Ex
ligne 24 à 25 contiennent des formules avec somme
ligne pas de formule mais des sommes en euros 1 289,15 € par Ex

tout est bien recopier SAUF les lignes 21-22-23 et 26
je pense que cela vient du code
 .SpecialCells(xlCellTypeConstants).ClearContents 
mauvaise formule pour recopier

Merci a vous et de votre temps

Cordialement Ray


'*** RECOPIER LES COLONNES ET LIGNES LE PREMIER JOUR DE CHAQUE MOIS AUTOMATIQUEMENT

With Cells(18, Month(Date) + 3).Resize(10, 1)
If Month(Date) > 1 Then
.Copy .Offset(0, 1)
.SpecialCells(xlCellTypeConstants).ClearContents '*Peut etre pas bonne formule ????
End If
End With

Calculate
End If '*** FIN DE RECOPIE

5 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
2 janv. 2014 à 07:35
Bonjour,

comprend pas trop ta manip mais...

Dim Col  As Byte, Bloc()
Col = Month(Date) + 3
With Range(Cells(18, Col), Cells(26, Col))
Bloc = Application.Transpose(.Value)
.SpecialCells(xlCellTypeConstants).ClearContents
End With
Cells(18, Col + 1).Resize(9, 1) = Application.Transpose(Bloc)

1
Salut michel-m

Mes meilleurs voeux pour 2014 avec de l'argent et surtout beaucoup de santé

Merci pour ta réponse
ca ne fonctionne pas comme souhaiter en fait
ça ne recopie rien mais efface tout sans rien recopier

le but comme tu peux le voir sur la photo ci-jointe étant de recopier quelques lignes le premier de chaque mois

Décembre 2013 viens de se terminer et il me faut copier P28:P26 vers E18:E26
ensuite début février copier E18:E26 vers F18:F26 etc etc

recopier les valeurs sans effacer les formules car certaines contiennent des formules sauf les lignes 21 22 23 et 26 qui n'en n'ont pas

comme tu peux le voir certaines ont étées copier sauf les lignes sans formules, je ne comprends pas pourquoi

http://cjoint.com/?3Acr2KxyKzP
lien pour la photo

Merci beaucoup pour ton aide et pour ton temps

bonne soirée a toi

Cdlt Ray
0
Salut michel-m,

J'ai revu un peu mon programme et du coup maintenat ton code fonctionne, merci.

Seul petit soucis, les lignes 21 22 23 et 26 qui n'ont pas de formule, Mais qui comporte des valeurs en euros uniquement, elles par contre, ne sont pas recopiés.

j'ai beau chercher mais je n'ai pas trouver

Si svp une petite idée sur le problème, je suis preneur.

Merci pour ton aide je te souhaite un agréable W-end

Cdlt Raymond
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
4 janv. 2014 à 09:43
Bonjour,

tout est bien recopier SAUF les lignes 21-22-23 et 26

j'avais compris qu'il ne fallait pas recopier les lignes sans formules d'où ma réaction : "comprend pas trop ta manip"

si j'ai compris cette fois :-D
enlève la ligne
.SpecialCells(xlCellTypeConstants).ClearContents
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bonjour michel_m


Merci pour ta réponse, je t'explique petite compta simple.
et le but est:
Recopier au premier de chaque mois la plage du mois Ex: janvier vers février ensuite février vers mars etc etc
et cela automatiquement car j'ouvre mon programme tout les jours.

refait essai en suivant tes conseils, voir photo ci-jointe svp

et ca fonctionne toujours pas

tout est bien recopier SAUF les lignes 21-22-23 et 26

pas de formule dans ces lignes format classique de l'euro

Merci pour ton aide bonne journée a toi

Cdlt Ray

lien pour la photo http://www.cjoint.com/?3AeljJPeEKN


With Ws
Dim Col As Byte, Bloc()
Col = Month(Date) + 3

With Range(Cells(18, Col), Cells(26, Col))
'Bloc = Application.Transpose(.Value).SpecialCells
(xlCellTypeConstants).ClearContents
End With

Cells(18, Col + 1).Resize(9, 1) = Application.Transpose(Bloc)
End With
0