Problème de "zéro" lors fusion plusieurs cellules - VB/VBA/VBS - Programmation
Marsh Posté le 14-05-2013 à 11:33:52
J'ai un soucis encore plus grave je crois...
Ma toute dernière étape consiste à copier la colonne contenant la somme de cellules accolées vers une autre feuille.
Ma macro tiens en 1 ligne:
For a = 2 To 50
Worksheets("hhhhhhhh" ).Range("G" & a).Copy Worksheets("données" ).Range("A" & a)
Next
mais ça me met dans ma colonne copiée :
=#REF!&#REF!&#REF!&#REF!&#REF!&#REF!
et ça pour toutes les lignes...
Pouvez vous m'aider s'il vous plait car j'y arrive vraiment pas et ça commence à me désespérer. Je débute sur VBA et j'arrive pas à trouver de l'inspiration pour débloquer le truc...
Marsh Posté le 14-05-2013 à 12:51:02
Bonjour.
Pour le premier message, attention à l'exemple du contenu des cellules et du résultat, car s'il n'y a pas de logique entre
(je ne vois pas comment obtenir ce résultat vu le contenu des cellules ‼),
il ne faut pas alors s'étonner de ne pas obtenir de réponse …
Quant au code, l'icône prévue à cet effet doit être utilisée !
Je n'ai aucun souci avec votre code, les zéros sont bien conservés si les cellules sont en format texte …
Pour des cellules en format numérique :
Code :
|
Au passage, plus il y a de Select dans un code plus l'exécution est lente, à proscrire donc !
Quant au second message, c'est normal vu la copie de formules au lieu de valeurs …
Est-il obligatoire d'avoir une formule, la valeur seule ne suffirait-elle pas ?
Dans le cas d'une formule, il faut la recréer et non pas la copier.
Sinon pour la valeur, voir l'aide de la méthode PasteSpecial appliquée à un objet Range …
Marsh Posté le 14-05-2013 à 13:28:01
Bonjour Marc L
Merci beaucoup pour votre réponse ! J'ai essayé et ça marche bien en effet ! Je ne savais pas qu'il était possible de mettre un code en format texte ...je n'y aurais jamais pensé !
Je débute aussi et cela est vrai que ce n'est jamais évident.
En tout cas merci encore de votre réponse ! Il me reste à "décrypter" votre seconde partie de réponse mais je vais y arriver.
Bon après midi
Marsh Posté le 14-05-2013 à 13:53:50
J'ai trouvé sur le net un problème similaire au mieux où la personne voulait appliquer PasteSpecial mais lorsque je l'applique je rencontre le même problème que précédemment...c'est à dire
A1 = =#REF!&TEXTE(#REF!;"00" )&#REF!&TEXTE(#REF!;"00" )&TEXTE(#REF!;"000" )&TEXTE(#REF!;"000" )
et cela pour toutes les lignes
Je voudrais juste copier les valeurs en effet si possible.
Ma macro est :
For x = 2 To 50
Sheets("" ).Range("E" & x).Copy
Sheets("données" ).Range("A" & x).PasteSpecial Paste:=xlPasteAll
Next
merci si vous pouviez une dernièrement fois m'aider !
Marsh Posté le 14-05-2013 à 14:28:09
C'est bon j'ai trouvé !
Merci en tout cas de votre aide Marc L !
Marsh Posté le 14-05-2013 à 14:34:48
Bien !
Au fait, comme dans mon exemple précédent, pas besoin de boucle, la plage peut être copiée puis collée en une seule fois …
Marsh Posté le 14-05-2013 à 10:59:09
Bonjour,
J'ai un soucis lorsque je souhaite accoler plusieurs cellules d'une même ligne.
Mon problème est le suivant; prenons un exemple:
Pour la ligne 1 fixée,en A1 j'ai : 26, en A2 j'ai B4, en A3 j'ai 026 et en A4 j'ai 001
Maintenant pour accoles les 4 cellules en 1 seule et unique en A5, j'utilise cette macro qui fonctionne mais qui me pose aussi un soucis:
Sheets("hhhhhh" ).Select
For p = 2 To 50
Range("E" & p).Select
ActiveCell.FormulaR1C1 = "=RC[-4]&RC[-3]&RC[-2]&RC[-1]"
next
end sub
Ca fonctionne sauf que ma cellule finale est : 26A2261
Il manque les zéros devant le 26 et les 2 zéros devant le 1....
Pour mettre les zéros dans mes macros précédentes pour chaque colonne je notais:
Sheets("hhhhhhh" ).Select
Columns("D:F" ).Select
Selection.NumberFormat = "000"
Mais celle ci ne semble pas être prise en compte lors de l'accolement...
Si quelqu'un pourrait m'aider ça serait vraiment génial car il ne me manque plus que ça pour finir ma macro !