Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Coller "RdV Fait Facturé" de "J" ligne active jusqu'à "J" dernière ligne NON vide

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous

Encore et toujours besoin de nos ténors bienveillants...
Dans mon Usine à gaz, j'ai fait un code
VB:
'col J
    [MaCell].Select
    ActiveCell.Offset(0, 9) = "RdV Fait Facturé"
    ActiveCell.Offset(0, 9).Select: Selection.Copy
    Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(100, 0)).PasteSpecial Paste:=xlPasteValue, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

La ligne qui me pose soucis est la suivante :
le but est de copier
- Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(100, 0)).PasteSpecial Paste:=xlPasteValue, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Je suis en cellule active "A4090"
Je voudrais écrire :
ActiveCell.Offset(0, 9) = "RdV Fait Facturé"
Je voudrais écrire "RdV Fait Facturé" de la cellule "J4090 (ActiveCell.Offset(0, 9)" jusqu’à la dernière NON VIDE de la col "J"

Bon sang, je n'y arrive ps
Pourriez-vous m'aider ?
Si besoin, je ferai un fichier test.
Grand merci à toutes et à tous
Je continue mes élucubrations ...
 
Solution
dans ta syntaxe. activecell est toujours A4090
et rows.count.end(xldown).. comme ce n'est pas spécifié.. je pense qu'il prend par défaut à partir de la cellule active..
et tu finis par un .row... ==> en gros. tu mélanges les choux et les carrottes..

un essai pas testé..
set CelDeb = activecell.offset(0,9) ==> CelDeb est donc J4090
range(CelDeb,CelDeb.end(xldown)="Rdv Fait Facturé"

Usine à gaz

XLDnaute Barbatruc
Re-Bjr
j'ai fait des tentatives sans trouver Grrr !!!

J'en suis là :
Je suis en cellule active "A4090"
coller de "J4090 (ActiveCell.Offset(0, 9)"
Dim i As Long
DL = Sheets("Appels").Range("ActiveCell.Offset(0, 9)" & Rows.Count).End(xlDown).Row = "RdV Fait Facturé"
mais ça ne fonctionne pas
 

vgendron

XLDnaute Barbatruc
dans ta syntaxe. activecell est toujours A4090
et rows.count.end(xldown).. comme ce n'est pas spécifié.. je pense qu'il prend par défaut à partir de la cellule active..
et tu finis par un .row... ==> en gros. tu mélanges les choux et les carrottes..

un essai pas testé..
set CelDeb = activecell.offset(0,9) ==> CelDeb est donc J4090
range(CelDeb,CelDeb.end(xldown)="Rdv Fait Facturé"
 

Usine à gaz

XLDnaute Barbatruc
Re

le code fonctionne bien mais il ne va pas jusqu'aux dernières lignes
J'essaie de voir ce qu'il faudrait modifier et (vu les bientôt 50° ici), ça va être difficile pour moi
En cas, je te mets le code :
VB:
Sub FacturatioNvelle()
[J3].Select
RétabliMenu
Sheets("Dr House_Raissa").Visible = True
Sheets("Facture").Visible = True
[AF4].FormulaR1C1 = "08/08/2023"
'select lignes vides à partir de ligne 7 end(xldown)
Range("A7:L" & Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Select
[AB4].FormulaR1C1 = "=COUNTA(R[4086]C[-27]:R[19996]C[-27])"
ActiveCell.Name = "MaCell" 'nomme la cellule
Selection.AutoFilter
[MaCell].Select: ActiveWindow.ScrollRow = Selection.Row

'formules en col ab-ae-bg
    [MaCell].Select
        Set CelDeb = ActiveCell.Offset(0, 27)
    Range(CelDeb, CelDeb.End(xlDown)).FormulaR1C1 = "=IF(RC[-18]=""RdV Fait Facturé"",0,SUBSTITUTE(SUBSTITUTE(LEFT(RC[-17],10),"" "",""."",1),"" "",""."",1))"
        Set CelDeb = ActiveCell.Offset(0, 31)
    Range(CelDeb, CelDeb.End(xlDown)).FormulaR1C1 = "=IF(RC[-4]=0,"""",IF(R4C-RC[-4]>0,RC[-30]&"" - ""&RC[-31],""""))"
        Set CelDeb = ActiveCell.Offset(0, 58)
    Range(CelDeb, CelDeb.End(xlDown)).FormulaR1C1 = "=IF(RC[-27]<>"""",1,0)"

'copy valeurs dans facture
    ActiveCell.Offset(0, 27).Resize(1, 32).Select: Selection.Copy
    Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(1000, 31)).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range(ActiveCell.Offset(-1, 0), ActiveCell.Offset(1000, 31)).Copy
    
    Sheets("Facture").Select
    Range("C73").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Appels").Select
  'col J
    [MaCell].Select
        Set CelDeb = ActiveCell.Offset(0, 9)
    Range(CelDeb, CelDeb.End(xlDown)) = "RdV Fait Facturé"
    
    Columns("AB:BG").ClearContents
    
Application.CutCopyMode = False
ActiveWindow.ScrollColumn = 6
    Range("A1").Select
' copie RdV facturé dans Dr_House Raissa + contrôle nbr total de lignes
End Sub
Je continue à chercher...
Merci pour ton aide
 

Usine à gaz

XLDnaute Barbatruc
Re
Je cherche.......
Tu veux bien me dire ce que veux dire :
Set CelDeb = ActiveCell.Offset(0, 27) = il prend en compte la cellule (0, 27) de "A" actif ?
Range(CelDeb, CelDeb.End(xlDown)) = il devrait aller jusqu'à la dernière ligne de la cellule (0, 27) de "A" actif ?
 

vgendron

XLDnaute Barbatruc
euh.. t'es en surchauffe.. va vite faire un tour dans la mer !

Set CelDeb = ActiveCell.Offset(0, 27)
si la cellule active est A1
Activecell.offset(0,27) correspond à la cellule AB1
et donc CelDeb c'est la cellule AB1
maintenant
Range(CelDeb,CelDeb.end(xldown)

celDeb.end(xldown) = dernière cellule vide (ou non vide. ca dépend du contenu de la CelDeb) de la colonne AB
Admettons que ca descende jusqu'à AB50

range(CelDeb, CelDeb.end(xldown) ==> c'est la plage AB1:AB50
 

Usine à gaz

XLDnaute Barbatruc
Re
C'est vrai je suis en surchauffe lol ... toutefois :
En début de code, j'ai "ActiveCell.Name = "MaCell" 'nomme la cellule" code de Gérard
et j'y revient toujours, ce qui fait que la cellule active de départ est toujours la même soit "A4090"
Donc les "Set CelDeb = ActiveCell.Offset(0, 27)" par exemple devraient donc commencer à la ligne "A4090"

Par exemple :
VB:
[MaCell].Select
        Set CelDeb = ActiveCell.Offset(0, 27)
    Range(CelDeb, CelDeb.End(xlDown)).FormulaR1C1 = "=IF(RC[-18]=""RdV Fait Facturé"",0,SUBSTITUTE(SUBSTITUTE(LEFT(RC[-17],10),"" "",""."",1),"" "",""."",1))"
Commence bien à la ligne "A4090" et Offset(0, 27) : ça c'est bon
Mais ça fini à la ligne "4190" ActiveCell.Offset(0, 27) alors que la fin est à la ligne "4232
et je ne vois pas pourquoi
Et c'est pareil pour les autres....
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…