Macro decaler la selection d'une cellule si elle est pleine

Fermé
Alex - 14 juil. 2014 à 22:45
 Alex - 15 juil. 2014 à 13:26
Bonjour,

je viens chercher un petit coup de pousse pour finaliser ma macro
Après avoir chercher tout le week end je suis toujours en difficulté.

Si en A1 ma cellule est pleine, je voudrais que la macro selectionne la cellule de droite (B1 pour coller du texte. Si la cellule A1 est vide alors je voudrais qu 'elle selectionne A1 puis coller......

Bref je ne trouve que des formules pour décaler mais sans la conditions de la cellule vide en A1

Range("A46").End(xlToLeft).Offset(0, 4).Select
Ce code fonctionne mais comment ajouter la condition "cellule vide en A1=A1

Merci pour votre aide
A voir également:

9 réponses

eriiic Messages postés 24602 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 7 décembre 2024 7 246
14 juil. 2014 à 23:22
Bonjour,

if [A1]="" then
...
else ' sinon
...
endif
0
via55 Messages postés 14502 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 9 décembre 2024 2 735
14 juil. 2014 à 23:26
Bonsoir

Pourquoi la fonction DECALER ici?

Ta problématique me semble être :
un texte blalbla.. et si A1 est vide y coller le texte sinon le coller en B1

donc :
montexte= "blabla"
If range("A1").value="" then range("A1")=montexte else range("B1")=montexte


ou si tu veux quand est A2 est rempli, B2 aussi, c2 etc mettre dans la première de droite vide :
' recherche la dernière colonne remplie de la ligne 2
DernCol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column
cells(2,derncol)=montexte

Cdlmnt
0
Merci via55, tu as décrypté ma problématique....je vais essayer de l'adapter a mon code ci dessous
0
J'ai rajouté +1 a la fin pour que ca fonctionne....Bref ca ne fonctionne pas non plus!

DernCol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column +1
0
bonjour eriiic et merci pour ta réponse.

Je teste ca de suite
0
Je ne comprends pas...

la macro ne tient pas compte de ma cellule en A1 et elle colle directement mon texte 4 colonnes plus loin???


 Application.ScreenUpdating = False
ActiveSheet.Shapes("Note Hotel").Copy
Sheets("Synthèse").Select
If ("A46") = "" Then

'Range("A46").Select
ActiveCell.FormulaR1C1 = "Frais d'hotel"
Selection.Font.Underline = xlUnderlineStyleSingle
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Font.Italic = True
Range("A48").Select
ActiveSheet.Paste

Else
Range("A46").End(xlToLeft).Offset(0, 4).Select
ActiveCell.FormulaR1C1 = "Frais d'hotel"
Selection.Font.Underline = xlUnderlineStyleSingle
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Font.Italic = True
Range("A48").Select
ActiveSheet.Paste
'Sheets(MaFeuille).Select
'Range("g25").Select
Application.ScreenUpdating = True

End If
0

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

Posez votre question
Bon alors voila
Avec ce code, le résultat reste sur la meme cellule = pas de décalage
DernCol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column

Si je rajoute +1 la macro ne tiens plus compte de ma cellule vide et décale automatiquement

DernCol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column +1

sinon celle ci fonctionne

montexte= "blabla"
If range("A1").value="" then range("A1")=montexte else range("B1")=montexte

je dois coller une image sous la cellule que la macro selectionne....mon probleme est que a chaque fois que j'execute la macro le texte ce decale mais l'image se surperpose???
0
eriiic Messages postés 24602 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 7 décembre 2024 7 246
15 juil. 2014 à 00:12
Cette réponse n'a rien à voir avec ce que tu demandais...
Comme tu cours plusieurs lièvres à la fois en postant sur plusieurs forums sans attendre 24h et que je n'aime pas chercher pour rien j'abandonne.

eric
0
via55 Messages postés 14502 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 9 décembre 2024 2 735
15 juil. 2014 à 00:22
Oui il fallait mettre +1 je l'avais oublié dans ma précipitation
C'est vrai lorsque la première cellule est vide le décalage se fait
essaie
DernCol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column
if cells(2,derncol).value="" then cells(2,derncol)=montexte else cells(2,derncol+1)=mon texte

Quant à l'image va voir ici :
http://boisgontierjacques.free.fr/pages_site/lesimages.htm

Cdlmnt
0
Désolé Eriiic de publier ma problématique sur plusieurs forum car j'ai vraiment besoin de cette solution pour finaliser mon fichier...tu ne cherches pas pour rien, je ne le voie pas du tout sous cet angle! Je te remercie de consacré de ton temps et de ton savoir pour moi et pour tout ceux qui verrons ce sujet....
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
Modifié par diabolo162 le 15/07/2014 à 08:18
suite
0
Bon voici les nouvelles du front....

Je ne trouve pas de sujet répondant à ma demande pour incorporer une image sous mon texte.

Le principe est :

Rechercher cellule première cellule vide
coller du texte (jusqu'à la c ok)
puis coller mon fichier image 2 lignes en dessous
0
montexte = "Note d'hotel"

'Application.ScreenUpdating = False
ActiveSheet.Shapes("Note Hotel").Copy
Sheets("Synthèse").Select
'derncol = Cells(46, Cells.Columns.Count).End(xlToLeft).Column
'Cells(46, derncol) = montexte
'If Range("A46").Value = "" Then Range("A46") = montexte Else Range("E46") = montexte
derncol = Cells(46, Cells.Columns.Count).End(xlToLeft).Column
If Cells(46, derncol).Value = "" Then Cells(46, derncol) = montexte Else Cells(46, derncol + 4) = montexte

'Range("A46").Select
'ActiveCell.FormulaR1C1 = "Frais d'hotel"
'Selection.Font.Underline = xlUnderlineStyleSingle
'Selection.Font.Bold = True
'Selection.Font.Italic = True
'Selection.Font.Italic = True
'Range("A48").Select
'ActiveSheet.Paste
'Sheets(MaFeuille).Select
'Range("g25").Select
Application.ScreenUpdating = True
0
Donc du coup j'avance dans mon dossier...pas à pas

J'ai trouvé comment importer l'image mais la macro ne la colle pas exactement en dessous du texte....c 'est un peu aléatoire


ActiveSheet.Shapes("Note Hotel").Copy
Sheets("Synthèse").Select
derncol = Cells(46, Cells.Columns.Count).End(xlToLeft).Column
If Cells(46, derncol).Value = "" Then
Cells(46, derncol) = montexte
Cells(46, derncol) = ActiveSheet.Paste
Else
Cells(46, derncol + 4) = montexte
Cells(46, derncol + 4) = ActiveSheet.Paste
0
Ok....bon après avoir passer mon week end j'ai réussi à écrire la solution ce que je cherchais....
Un grand merci à toi via55 et à ériiic aussi lol

Donc la solution :

ActiveSheet.Shapes("Note Hotel").Copy
Sheets("Synthèse").Select
'derncol = Cells(46, Cells.Columns.Count).End(xlToLeft).Column
'Cells(46, derncol) = montexte
'If Range("A46").Value = "" Then Range("A46") = montexte Else Range("E46") = montexte
derncol = Cells(46, Cells.Columns.Count).End(xlToLeft).Column
If Cells(46, derncol).Value = "" Then
Cells(46, derncol) = montexte
Cells(48, derncol) = Cells(48, derncol).Select
ActiveSheet.Paste
Else
Cells(46, derncol + 4) = montexte
Cells(48, derncol + 4) = Cells(48, derncol + 4).Select
ActiveSheet.Paste
0